diff --git a/.ci/azure/linux.yml b/.ci/azure/linux.yml index d48aa25f5bb..90c9aa11d17 100644 --- a/.ci/azure/linux.yml +++ b/.ci/azure/linux.yml @@ -241,7 +241,7 @@ jobs: . $(SETUPVARS) -pyver 3.8 && python3 -m pytest -s $(INSTALL_DIR)/tests/mo/unit_tests --junitxml=TEST-ModelOptimizer.xml displayName: 'Model Optimizer UT' continueOnError: false - enabled: false + enabled: true - script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/ov_core_unit_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* --gtest_output=xml:TEST-NGraphUT.xml workingDirectory: $(INSTALL_TEST_DIR) @@ -334,7 +334,7 @@ jobs: displayName: 'Samples Smoke Tests' continueOnError: false condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON') - enabled: false + enabled: true - script: | export DATA_PATH=$(MODELS_PATH) @@ -353,7 +353,7 @@ jobs: workingDirectory: $(LAYER_TESTS_DIR) displayName: 'Layer Tests' continueOnError: false - enabled: false + enabled: true - task: PublishTestResults@2 condition: always() diff --git a/.ci/azure/linux_lohika.yml b/.ci/azure/linux_lohika.yml index 3e04658ebd6..198e24433c9 100644 --- a/.ci/azure/linux_lohika.yml +++ b/.ci/azure/linux_lohika.yml @@ -35,7 +35,7 @@ jobs: - checkout: none - - script: git -C ~/work/openvino checkout -m --recurse-submodules $(Build.SourceVersion) + - script: git -C ~/work/openvino checkout -m $(Build.SourceVersion) && git -C ~/work/openvino submodule update --init --recursive displayName: checkout # Should be after 'Install dependencies' because Git lfs is not installed @@ -71,7 +71,7 @@ jobs: ./buildreleasenolto.sh libinference_engine_preproc.so MKLDNNPlugin - clDNNPlugin + ov_intel_gpu_plugin clDNN_unit_tests64 gpuFuncTests displayName: Build Lin diff --git a/.ci/azure/windows.yml b/.ci/azure/windows.yml index b9738b6a7bb..81e2b47a622 100644 --- a/.ci/azure/windows.yml +++ b/.ci/azure/windows.yml @@ -83,7 +83,7 @@ jobs: displayName: 'Make dir' - script: | - certutil -urlcache -split -f https://openvinoweb.z5.web.core.windows.net/incredibuild/install_ib_console.bat install_ib_console.bat + curl -O https://openvinoweb.z5.web.core.windows.net/incredibuild/install_ib_console.bat call install_ib_console.bat workingDirectory: $(WORK_DIR) displayName: 'Install IncrediBuild' @@ -117,9 +117,9 @@ jobs: python -m pip install -r $(REPO_DIR)\tools\mo\requirements.txt python -m pip install -r $(REPO_DIR)\tools\mo\requirements_dev.txt rem Speed up build - certutil -urlcache -split -f https://github.com/Kitware/CMake/releases/download/v$(CMAKE_VERSION)/cmake-$(CMAKE_VERSION)-windows-x86_64.zip cmake-$(CMAKE_VERSION)-windows-x86_64.zip + powershell -command "Invoke-WebRequest https://github.com/Kitware/CMake/releases/download/v$(CMAKE_VERSION)/cmake-$(CMAKE_VERSION)-windows-x86_64.zip -OutFile cmake-$(CMAKE_VERSION)-windows-x86_64.zip" powershell -command "Expand-Archive -Force cmake-$(CMAKE_VERSION)-windows-x86_64.zip" - certutil -urlcache -split -f https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip ninja-win.zip + powershell -command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip -OutFile ninja-win.zip" powershell -command "Expand-Archive -Force ninja-win.zip" git clone https://github.com/google/gtest-parallel.git workingDirectory: $(WORK_DIR) diff --git a/.ci/azure/windows_conditional_compilation.yml b/.ci/azure/windows_conditional_compilation.yml index cc310068d11..3f1e152a4d6 100644 --- a/.ci/azure/windows_conditional_compilation.yml +++ b/.ci/azure/windows_conditional_compilation.yml @@ -59,7 +59,7 @@ jobs: - script: | rem Speed up build - certutil -urlcache -split -f https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip ninja-win.zip + powershell -command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip -OutFile ninja-win.zip" powershell -command "Expand-Archive -Force ninja-win.zip" workingDirectory: $(WORK_DIR) displayName: 'Install dependencies' diff --git a/CODEOWNERS b/CODEOWNERS index 8062389595d..34388f4086c 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -35,7 +35,7 @@ Jenkinsfile @openvinotoolkit/openvino-admins /src/common/ @openvinotoolkit/openvino-ie-maintainers /src/core/ @openvinotoolkit/openvino-ngraph-maintainers /src/frontends/ @openvinotoolkit/openvino-ngraph-maintainers -/inference-engine/tests_deprecated/readers/ @openvinotoolkit/openvino-ngraph-maintainers +/src/tests_deprecated/readers/ @openvinotoolkit/openvino-ngraph-maintainers # IE CPU: /inference-engine/src/mkldnn_plugin/ @openvinotoolkit/openvino-ie-cpu-maintainers @openvinotoolkit/openvino-ie-cpu-developers @@ -53,12 +53,12 @@ Jenkinsfile @openvinotoolkit/openvino-admins /inference-engine/src/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers /src/inference/include/ie/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers /inference-engine/thirdparty/movidius/ @openvinotoolkit/openvino-ie-vpu-maintainers -/inference-engine/tests_deprecated/unit/engines/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers -/inference-engine/tests_deprecated/functional/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers -/inference-engine/tests_deprecated/behavior/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers -/inference-engine/tests/functional/plugin/myriad/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers -/inference-engine/tests/unit/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers -/inference-engine/tests/unit/engines/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests_deprecated/unit/engines/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests_deprecated/functional/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests_deprecated/behavior/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests/functional/plugin/myriad/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests/unit/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests/unit/engines/vpu/ @openvinotoolkit/openvino-ie-vpu-maintainers @openvinotoolkit/openvino-ie-tests-maintainers /inference-engine/scripts/run_tests_myriad_multistick.sh @openvinotoolkit/openvino-ie-vpu-maintainers # IE GNA: @@ -70,10 +70,10 @@ Jenkinsfile @openvinotoolkit/openvino-admins /src/inference/include/ie/multi-device/ @openvinotoolkit/openvino-ie-multi-maintainers # IE Tests: -/inference-engine/tests/ @openvinotoolkit/openvino-ie-tests-maintainers -/inference-engine/tests_deprecated/ @openvinotoolkit/openvino-ie-tests-maintainers -/inference-engine/tests/functional/inference_engine/ngraph_reader/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ngraph-maintainers -/inference-engine/tests/functional/inference_engine/transformations/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ngraph-maintainers +/src/tests/ @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests_deprecated/ @openvinotoolkit/openvino-ie-tests-maintainers +/src/tests/functional/inference_engine/ngraph_reader/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ngraph-maintainers +/src/tests/functional/inference_engine/transformations/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ngraph-maintainers # Documentation: /docs/ @openvinotoolkit/openvino-docs-maintainers diff --git a/cmake/developer_package/api_validator/api_validator.cmake b/cmake/developer_package/api_validator/api_validator.cmake index d58ba745742..2d707dd6a46 100644 --- a/cmake/developer_package/api_validator/api_validator.cmake +++ b/cmake/developer_package/api_validator/api_validator.cmake @@ -79,8 +79,20 @@ function(_ie_add_api_validator_post_build_step) _ie_add_api_validator_post_build_step_recursive(TARGET ${API_VALIDATOR_TARGET}) # remove targets which were tested before - - foreach(item IN LISTS VALIDATED_LIBRARIES) + foreach(target IN LISTS API_VALIDATOR_TARGETS) + list(FIND VALIDATED_LIBRARIES ${target} index) + if (NOT index EQUAL -1) + list(APPEND VALIDATED_TARGETS ${target}) + endif() + if(TARGET "${target}") + get_target_property(orig_target ${target} ALIASED_TARGET) + list(FIND VALIDATED_LIBRARIES ${orig_target} index) + if (NOT index EQUAL -1) + list(APPEND VALIDATED_TARGETS ${target}) + endif() + endif() + endforeach() + foreach(item IN LISTS VALIDATED_TARGETS) list(REMOVE_ITEM API_VALIDATOR_TARGETS ${item}) endforeach() diff --git a/cmake/developer_package/frontends/frontends.cmake b/cmake/developer_package/frontends/frontends.cmake index b36db7b0d78..b5b07559bea 100644 --- a/cmake/developer_package/frontends/frontends.cmake +++ b/cmake/developer_package/frontends/frontends.cmake @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 # -set(FRONTEND_INSTALL_INCLUDE "runtime/include/ngraph/frontend") +set(FRONTEND_INSTALL_INCLUDE "runtime/include/") set(FRONTEND_NAME_SUFFIX "_ov_frontend") set(FRONTEND_NAMES "" CACHE INTERNAL "") @@ -225,7 +225,7 @@ macro(ov_add_frontend) if(OV_FRONTEND_LINKABLE_FRONTEND) # install -dev part - install(DIRECTORY ${${TARGET_NAME}_INCLUDE_DIR}/${OV_FRONTEND_NAME}_frontend + install(DIRECTORY ${${TARGET_NAME}_INCLUDE_DIR}/ DESTINATION ${FRONTEND_INSTALL_INCLUDE} COMPONENT core_dev FILES_MATCHING PATTERN "*.hpp") diff --git a/cmake/developer_package/frontends/ov_frontends.hpp.in b/cmake/developer_package/frontends/ov_frontends.hpp.in index 0293054160d..82c1f1d010f 100644 --- a/cmake/developer_package/frontends/ov_frontends.hpp.in +++ b/cmake/developer_package/frontends/ov_frontends.hpp.in @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend.hpp" +#include "openvino/frontend/frontend.hpp" @OV_FRONTEND_DECLARATIONS@ diff --git a/cmake/test_model_zoo.cmake b/cmake/test_model_zoo.cmake index 63446532639..de29223baa7 100644 --- a/cmake/test_model_zoo.cmake +++ b/cmake/test_model_zoo.cmake @@ -66,22 +66,22 @@ ov_model_convert("${CMAKE_CURRENT_SOURCE_DIR}/src/core/tests" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo/core" onnx_out_files) -set(rel_path "inference-engine/tests/functional/plugin/shared/models") +set(rel_path "src/tests/functional/plugin/shared/models") ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo/func_tests/models" ft_out_files) -set(rel_path "inference-engine/tests/functional/inference_engine/onnx_reader") +set(rel_path "src/tests/functional/inference_engine/onnx_reader") ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo/onnx_reader" ie_onnx_out_files) -set(rel_path "inference-engine/tests/functional/inference_engine/ir_serialization") +set(rel_path "src/tests/functional/inference_engine/ir_serialization") ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo/ir_serialization" ie_serialize_out_files) -set(rel_path "inference-engine/tests/unit/frontends/onnx_import/models") +set(rel_path "src/tests/unit/frontends/onnx_import/models") ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo/onnx_import" ie_onnx_import_out_files) diff --git a/docs/HOWTO/mo_extensions/front/tf/Complex.py b/docs/HOWTO/mo_extensions/front/tf/Complex.py index fa23d9b1f4d..60167aad6c0 100644 --- a/docs/HOWTO/mo_extensions/front/tf/Complex.py +++ b/docs/HOWTO/mo_extensions/front/tf/Complex.py @@ -2,12 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 #! [complex:transformation] -import logging as log -import numpy as np - -from mo.front.common.replacement import FrontReplacementSubgraph -from mo.graph.graph import Graph +from openvino.tools.mo.front.common.replacement import FrontReplacementSubgraph +from openvino.tools.mo.graph.graph import Graph class Complex(FrontReplacementSubgraph): @@ -41,4 +38,3 @@ class Complex(FrontReplacementSubgraph): # change the connection so now all consumers of "complex_node" get data from input node of strided slice nodes complex_node.out_port(0).get_connection().set_source(input_node_output_port) #! [complex:transformation] - diff --git a/docs/HOWTO/mo_extensions/front/tf/ComplexAbs.py b/docs/HOWTO/mo_extensions/front/tf/ComplexAbs.py index 4fe0368fd66..ea6c94ed1e2 100644 --- a/docs/HOWTO/mo_extensions/front/tf/ComplexAbs.py +++ b/docs/HOWTO/mo_extensions/front/tf/ComplexAbs.py @@ -4,11 +4,11 @@ #! [complex_abs:transformation] import numpy as np -from extensions.ops.elementwise import Pow -from extensions.ops.ReduceOps import ReduceSum -from mo.front.common.replacement import FrontReplacementOp -from mo.graph.graph import Graph, Node -from mo.ops.const import Const +from openvino.tools.mo.ops.elementwise import Pow +from openvino.tools.mo.ops.ReduceOps import ReduceSum +from openvino.tools.mo.front.common.replacement import FrontReplacementOp +from openvino.tools.mo.graph.graph import Graph, Node +from openvino.tools.mo.ops.const import Const class ComplexAbs(FrontReplacementOp): diff --git a/docs/HOWTO/mo_extensions/front/tf/FFT_ext.py b/docs/HOWTO/mo_extensions/front/tf/FFT_ext.py index e5216d2ea3e..c15c4e38903 100644 --- a/docs/HOWTO/mo_extensions/front/tf/FFT_ext.py +++ b/docs/HOWTO/mo_extensions/front/tf/FFT_ext.py @@ -3,8 +3,7 @@ # ! [fft_ext:extractor] from ...ops.FFT import FFT -from mo.front.extractor import FrontExtractorOp -from mo.utils.error import Error +from openvino.tools.mo.front.extractor import FrontExtractorOp class FFT2DFrontExtractor(FrontExtractorOp): diff --git a/docs/HOWTO/mo_extensions/ops/FFT.py b/docs/HOWTO/mo_extensions/ops/FFT.py index 92645cd6967..e0f018fa165 100644 --- a/docs/HOWTO/mo_extensions/ops/FFT.py +++ b/docs/HOWTO/mo_extensions/ops/FFT.py @@ -2,9 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 #! [fft:operation] -from mo.front.common.partial_infer.elemental import copy_shape_infer -from mo.graph.graph import Node, Graph -from mo.ops.op import Op +from openvino.tools.mo.front.common.partial_infer.elemental import copy_shape_infer +from openvino.tools.mo.graph.graph import Graph +from openvino.tools.mo.ops.op import Op class FFT(Op): diff --git a/docs/IE_PLUGIN_DG/Doxyfile b/docs/IE_PLUGIN_DG/Doxyfile index a9367a25888..7d7735b1fbc 100644 --- a/docs/IE_PLUGIN_DG/Doxyfile +++ b/docs/IE_PLUGIN_DG/Doxyfile @@ -868,7 +868,7 @@ EXAMPLE_PATH = ../template_plugin/src \ ../template_plugin/tests/functional/CMakeLists.txt \ ../template_plugin/tests/functional/transformations \ ../template_plugin/tests/functional/shared_tests_instances/ \ - ../../inference-engine/tests/functional/plugin/shared/include \ + ../../src/tests/functional/plugin/shared/include \ ../snippets # If the value of the EXAMPLE_PATH tag contains directories, you can use the diff --git a/docs/MO_DG/prepare_model/convert_model/Converting_Model_General.md b/docs/MO_DG/prepare_model/convert_model/Converting_Model_General.md index 2e708e1eaa1..07f8886a0e9 100644 --- a/docs/MO_DG/prepare_model/convert_model/Converting_Model_General.md +++ b/docs/MO_DG/prepare_model/convert_model/Converting_Model_General.md @@ -59,11 +59,14 @@ Framework-agnostic parameters: --reverse_input_channels Switch the input channels order from RGB to BGR (or vice versa). Applied to original inputs of the model - if and only if a number of channels equals 3. Applied - after application of --mean_values and --scale_values - options, so numbers in --mean_values and - --scale_values go in the order of channels used in the - original model. + if and only if a number of channels equals 3. + When --mean_values/--scale_values are also specified, + reversing of channels will be applied to user's input + data first, so that numbers in --mean_values and + --scale_values go in the order of channels used in + the original model. In other words, if both options are + specified then the data flow in the model looks as following: + Parameter -> ReverseInputChannels -> Mean/Scale apply -> the original body of the model. --log_level {CRITICAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET} Logger level --input INPUT Quoted list of comma-separated input nodes names with diff --git a/docs/MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md b/docs/MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md index d133654b8df..d29b2edeb6c 100644 --- a/docs/MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md +++ b/docs/MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md @@ -639,9 +639,9 @@ graph. Consider the extractor for the TensorFlow\* operation `Const` (refer to t `extensions/front/tf/const_ext.py`): ```py -from mo.front.extractor import FrontExtractorOp -from mo.front.tf.extractors.utils import tf_dtype_extractor, tf_tensor_shape, tf_tensor_content -from mo.ops.const import Const +from openvino.tools.mo.front.extractor import FrontExtractorOp +from openvino.tools.mo.front.tf.extractors.utils import tf_dtype_extractor, tf_tensor_shape, tf_tensor_content +from openvino.tools.mo.ops.const import Const class ConstExtractor(FrontExtractorOp): @@ -679,9 +679,9 @@ Consider another example with an extractor of ONNX\* operation `Constant` (refer from onnx import numpy_helper from onnx.numpy_helper import to_array -from mo.front.extractor import FrontExtractorOp -from mo.front.onnx.extractors.utils import onnx_attr -from mo.ops.const import Const +from openvino.tools.mo.front.extractor import FrontExtractorOp +from openvino.tools.mo.front.onnx.extractors.utils import onnx_attr +from openvino.tools.mo.ops.const import Const class ConstantExtractor(FrontExtractorOp): @@ -814,11 +814,11 @@ fusing of the sub-graph defining the [Mish](../../../ops/activation/Mish_4.md) a operation: ```py -from extensions.front.Softplus_fusion import SoftplusFusion -from extensions.ops.activation_ops import Mish -from mo.front.common.replacement import FrontReplacementSubgraph -from mo.front.subgraph_matcher import SubgraphMatch -from mo.graph.graph import Graph, rename_nodes +from openvino.tools.mo.front.Softplus_fusion import SoftplusFusion +from openvino.tools.mo.ops.activation_ops import Mish +from openvino.tools.mo.front.common.replacement import FrontReplacementSubgraph +from openvino.tools.mo.front.subgraph_matcher import SubgraphMatch +from openvino.tools.mo.graph.graph import Graph, rename_nodes class MishFusion(FrontReplacementSubgraph): @@ -886,12 +886,12 @@ transformation. Consider an example transformation from the file is `extensions/front/Pack.py` which replaces operation `Pack` from the TensorFlow\*: ```py -from mo.front.common.partial_infer.utils import int64_array -from mo.front.common.replacement import FrontReplacementOp -from mo.front.tf.graph_utils import create_op_with_const_inputs -from mo.graph.graph import Node, Graph, rename_nodes -from mo.ops.concat import Concat -from mo.ops.unsqueeze import Unsqueeze +from openvino.tools.mo.front.common.partial_infer.utils import int64_array +from openvino.tools.mo.front.common.replacement import FrontReplacementOp +from openvino.tools.mo.front.tf.graph_utils import create_op_with_const_inputs +from openvino.tools.mo.graph.graph import Node, Graph, rename_nodes +from openvino.tools.mo.ops.concat import Concat +from openvino.tools.mo.ops.unsqueeze import Unsqueeze class Pack(FrontReplacementOp): @@ -932,11 +932,11 @@ specification. ```py import logging as log -from mo.front.common.partial_infer.utils import int64_array -from mo.front.common.replacement import FrontReplacementPattern -from mo.graph.graph import Graph -from mo.ops.const import Const -from mo.utils.error import Error +from openvino.tools.mo.front.common.partial_infer.utils import int64_array +from openvino.tools.mo.front.common.replacement import FrontReplacementPattern +from openvino.tools.mo.graph.graph import Graph +from openvino.tools.mo.ops.const import Const +from openvino.tools.mo.utils.error import Error class SqueezeNormalize(FrontReplacementPattern): @@ -1200,13 +1200,13 @@ The example of the configuration file for this type of transformation is `extens and the corresponding transformation file is `./extensions/front/YOLO.py`: ```py -from extensions.front.no_op_eraser import NoOpEraser -from extensions.front.standalone_const_eraser import StandaloneConstEraser -from extensions.ops.regionyolo import RegionYoloOp -from mo.front.tf.replacement import FrontReplacementFromConfigFileGeneral -from mo.graph.graph import Node, Graph -from mo.ops.result import Result -from mo.utils.error import Error +from openvino.tools.mo.front.no_op_eraser import NoOpEraser +from openvino.tools.mo.front.standalone_const_eraser import StandaloneConstEraser +from openvino.tools.mo.ops.regionyolo import RegionYoloOp +from openvino.tools.mo.front.tf.replacement import FrontReplacementFromConfigFileGeneral +from openvino.tools.mo.graph.graph import Node, Graph +from openvino.tools.mo.ops.result import Result +from openvino.tools.mo.utils.error import Error class YoloRegionAddon(FrontReplacementFromConfigFileGeneral): diff --git a/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_MXNet_Model_Optimizer_with_New_Primitives.md b/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_MXNet_Model_Optimizer_with_New_Primitives.md index e20a44969cf..9c4774715e4 100644 --- a/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_MXNet_Model_Optimizer_with_New_Primitives.md +++ b/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_MXNet_Model_Optimizer_with_New_Primitives.md @@ -20,9 +20,9 @@ assume that we have already created the `CustomOp` class (inherited from `Op` cl for this MXNet custom operation as described in the [Customize_Model_Optimizer](Customize_Model_Optimizer.md). ```py -from extension.ops.custom_op import CustomOp # implementation of the MO operation class -from mo.front.mxnet.extractors.utils import get_mxnet_layer_attrs -from mo.front.extractor import MXNetCustomFrontExtractorOp +from openvino.tools.mo.ops.custom_op import CustomOp # implementation of the MO operation class +from openvino.tools.mo.front.mxnet.extractors.utils import get_mxnet_layer_attrs +from openvino.tools.mo.front.extractor import MXNetCustomFrontExtractorOp class CustomProposalFrontExtractor(MXNetCustomFrontExtractorOp): # inherit from specific base class op = 'MyCustomOp' # the value corresponding to the `op_type` value of the MXNet operation diff --git a/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_Model_Optimizer_with_Caffe_Python_Layers.md b/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_Model_Optimizer_with_Caffe_Python_Layers.md index 579437aeb5a..f95fae23e2b 100644 --- a/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_Model_Optimizer_with_Caffe_Python_Layers.md +++ b/docs/MO_DG/prepare_model/customize_model_optimizer/Extending_Model_Optimizer_with_Caffe_Python_Layers.md @@ -40,8 +40,8 @@ operation `ProposalOp` which corresponds to `Proposal` operation described in th document. Refer to the source code below for a detailed explanation of the extractor. ```py -from extensions.ops.proposal import ProposalOp -from mo.front.extractor import CaffePythonFrontExtractorOp +from openvino.tools.mo.ops.proposal import ProposalOp +from openvino.tools.mo.front.extractor import CaffePythonFrontExtractorOp class ProposalPythonFrontExtractor(CaffePythonFrontExtractorOp): diff --git a/docs/nGraph_DG/nGraphTransformation.md b/docs/nGraph_DG/nGraphTransformation.md index 524dbf59c6e..b27a2876b98 100644 --- a/docs/nGraph_DG/nGraphTransformation.md +++ b/docs/nGraph_DG/nGraphTransformation.md @@ -430,7 +430,7 @@ PassConfig instance taken from pass::Manager is shared across all registered tra ## Transformations testing If you are developing new transformation inside plugin, you need to add test into the `template_plugin/tests/functional/transformations` folder. -We have two types of tests: nGraph reader tests located in `inference-engine/tests/functional/inference_engine/ngraph_reader` and transformation tests located in `inference-engine/tests/functional/inference_engine/transformations` +We have two types of tests: nGraph reader tests located in `src/tests/functional/inference_engine/ngraph_reader` and transformation tests located in `src/tests/functional/inference_engine/transformations` Reader tests are IR based and test end-to-end conversion from IR to CNNNetwork. Transformation tests test single ngraph transformations or low-level functions that are used inside transformations. The basic transformation test looks like this: diff --git a/docs/template_plugin/backend/CMakeLists.txt b/docs/template_plugin/backend/CMakeLists.txt index e075a555099..df959ed86e5 100644 --- a/docs/template_plugin/backend/CMakeLists.txt +++ b/docs/template_plugin/backend/CMakeLists.txt @@ -38,17 +38,10 @@ target_include_directories(interpreter_backend PUBLIC $& op, const HostTensorVector& outputs } namespace ctc_loss_v4 { -template +template ::value_type>::value && + !std::is_same::value_type, bfloat16>::value && + !std::is_same::value_type, float16>::value, + bool>::type = true> +inline void evaluate(const shared_ptr& op, + const HostTensorVector& outputs, + const HostTensorVector& inputs) { + OPENVINO_ASSERT(false, "The data type for logits is expected to be a floating point type. Got:", element::Type(t1)); +} + +template ::value_type>::value || + std::is_same::value_type, bfloat16>::value || + std::is_same::value_type, float16>::value, + bool>::type = true> inline void evaluate(const shared_ptr& op, const HostTensorVector& outputs, const HostTensorVector& inputs) { @@ -1944,6 +1961,30 @@ bool evaluate(const shared_ptr& op, const HostTensorVector& out return true; } +template +bool evaluate(const shared_ptr& op, const HostTensorVector& outputs, const HostTensorVector& inputs) { + using T = typename element_type_traits::value_type; + runtime::reference::lstm_cell(inputs[0]->get_data_ptr(), + inputs[0]->get_shape(), + inputs[1]->get_data_ptr(), + inputs[1]->get_shape(), + inputs[2]->get_data_ptr(), + inputs[2]->get_shape(), + inputs[3]->get_data_ptr(), + inputs[3]->get_shape(), + inputs[4]->get_data_ptr(), + inputs[4]->get_shape(), + inputs[5]->get_data_ptr(), + inputs[5]->get_shape(), + outputs[0]->get_data_ptr(), + outputs[1]->get_data_ptr(), + op->get_activations()[0], + op->get_activations()[1], + op->get_activations()[2], + op->get_clip()); + return true; +} + template bool evaluate(const shared_ptr& op, const HostTensorVector& outputs, const HostTensorVector& inputs) { using T = typename element_type_traits::value_type; diff --git a/docs/template_plugin/backend/opset_int_tbl.hpp b/docs/template_plugin/backend/opset_int_tbl.hpp index fe1230d79d4..287bf9a0d11 100644 --- a/docs/template_plugin/backend/opset_int_tbl.hpp +++ b/docs/template_plugin/backend/opset_int_tbl.hpp @@ -20,6 +20,7 @@ NGRAPH_OP(Gelu, op::v0) NGRAPH_OP(GRN, op::v0) NGRAPH_OP(HardSigmoid, op::v0) NGRAPH_OP(LRN, ngraph::op::v0) +NGRAPH_OP(LSTMCell, op::v0) NGRAPH_OP(MVN, ngraph::op::v0) NGRAPH_OP(NormalizeL2, op::v0) NGRAPH_OP(PriorBox, ngraph::op::v0) diff --git a/docs/template_plugin/src/CMakeLists.txt b/docs/template_plugin/src/CMakeLists.txt index 125ee872d02..18b20731e18 100644 --- a/docs/template_plugin/src/CMakeLists.txt +++ b/docs/template_plugin/src/CMakeLists.txt @@ -37,4 +37,3 @@ set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_REL # ie_register_plugins(MAIN_TARGET ${TARGET_NAME} # POSSIBLE_PLUGINS ${TARGET_NAME}) # [cmake:plugin] -ov_install_static_lib(interpreter_backend tests) diff --git a/docs/template_plugin/tests/functional/op_reference/einsum.cpp b/docs/template_plugin/tests/functional/op_reference/einsum.cpp new file mode 100644 index 00000000000..625521dc42b --- /dev/null +++ b/docs/template_plugin/tests/functional/op_reference/einsum.cpp @@ -0,0 +1,182 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include "openvino/opsets/opset7.hpp" +#include "openvino/opsets/opset1.hpp" +#include "base_reference_test.hpp" + +using namespace reference_tests; +using namespace ov; + +namespace { +struct EinsumParams { + std::vector inputs; + std::string equation; + Tensor expectedResult; + std::string testcaseName; +}; + +struct Builder : ParamsBuilder { + REFERENCE_TESTS_ADD_SET_PARAM(Builder, inputs); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, equation); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, expectedResult); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, testcaseName); +}; + +class ReferenceEinsumTest : public testing::TestWithParam, public CommonReferenceTest { +public: + void SetUp() override { + auto params = GetParam(); + function = CreateModel(params); + for (const auto& input_tensor : params.inputs) { + inputData.push_back(input_tensor.data); + } + refOutData = {params.expectedResult.data}; + } + + static std::string getTestCaseName(const testing::TestParamInfo& obj) { + auto param = obj.param; + std::ostringstream result; + result << "iType=" << param.inputs[0].type; + result << "_iShape=" << param.inputs[0].shape; + result << "_equation=" << param.equation; + result << "_eType=" << param.expectedResult.type; + result << "_eShape=" << param.expectedResult.shape; + if (param.testcaseName != "") { + result << "_=" << param.testcaseName; + } + return result.str(); + } + +private: + static std::shared_ptr CreateModel(const EinsumParams& params) { + OutputVector output_vector; + ParameterVector param_vector; + for (const auto& input_tensor : params.inputs) { + auto param = std::make_shared(input_tensor.type, input_tensor.shape); + output_vector.push_back(param); + param_vector.push_back(param); + } + const auto einsum = std::make_shared(output_vector, params.equation); + const auto f = std::make_shared(OutputVector{einsum}, param_vector); + return f; + } +}; + +TEST_P(ReferenceEinsumTest, CompareWithRefs) { + Exec(); +} + +template +std::vector generateParams() { + using T = typename element_type_traits::value_type; + std::vector params { + Builder {} + .inputs({{ET, {1, 2}, std::vector{1, 2}}, + {ET, {3, 4}, std::vector{3, 4, 5, 6, + 7, 8, 9, 10, + 11, 12, 13, 14}}}) + .equation("ab,cd->abcd") + .expectedResult({ET, {1, 2, 3, 4}, std::vector{3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 6, 8, 10, 12, + 14, 16, 18, 20, 22, 24, 26, 28}}) + .testcaseName("einsum_no_reduction"), + Builder {} + .inputs({{ET, {1, 2, 3}, std::vector{1, 2, 3, 4, 5, 6}}}) + .equation("ijk->kij") + .expectedResult({ET, {3, 1, 2}, std::vector{1, 4, 2, 5, 3, 6}}) + .testcaseName("einsum_transpose"), + + Builder {} + .inputs({{ET, {2, 3}, std::vector{1, 2, 3, 4, 5, 6}}}) + .equation("ab->a") + .expectedResult({ET, {2}, std::vector{6, 15}}) + .testcaseName("einsum_reduce"), + + Builder {} + .inputs({{ET, {2, 3}, std::vector{1, 2, 3, 4, 5, 6}}, + {ET, {3, 2}, std::vector{1, 2, 3, 4, 5, 6}}}) + .equation("ab,bc->ac") + .expectedResult({ET, {2, 2}, std::vector{22, 28, 49, 64}}) + .testcaseName("einsum_matrix_multiplication"), + + Builder {} + .inputs({{ET, {2, 4}, std::vector{1, 3, 2, 7, 5, 6, 0, 1}}, + {ET, {4, 3, 1}, std::vector{1, 2, 3, 4, 5, 6, 5, 7, 3, 7, 9, 1}}, + {ET, {4, 3}, std::vector{4, 3, 1, 6, 4, 2, 2, 5, 3, 1, 9, 4}}}) + .equation("ab,bcd,bc->ca") + .expectedResult({ET, {3, 2}, std::vector{145, 171, 703, 231, 85, 91}}) + .testcaseName("einsum_multiple_multiplication"), + + Builder {} + .inputs({{ET, {2, 2, 3}, std::vector{1, 3, 2, 7, 5, 6, 3, 5, 2, 1, 0, 7}}}) + .equation("a...->...") + .expectedResult({ET, {2, 3}, std::vector{4, 8, 4, 8, 5, 13}}) + .testcaseName("einsum_ellipsis_one_input_reduction"), + + Builder {} + .inputs({{ET, {2, 2, 3}, std::vector{1, 3, 2, 7, 5, 6, 3, 5, 2, 1, 0, 7}}}) + .equation("a...->...a") + .expectedResult({ET, {2, 3, 2}, std::vector{1, 3, 3, 5, 2, 2, 7, 1, 5, 0, 6, 7}}) + .testcaseName("einsum_ellipsis_one_input_transpose"), + + Builder {} + .inputs({{ET, {2, 2, 3}, std::vector{1, 3, 2, 7, 5, 6, 3, 5, 2, 1, 0, 7}}, + {ET, {1}, std::vector{2}}}) + .equation("ab...,...->ab...") + .expectedResult({ET, {2, 2, 3}, std::vector{2, 6, 4, 14, 10, 12, 6, 10, 4, 2, 0, 14}}) + .testcaseName("einsum_ellipsis_mul_by_1dscalar"), + + Builder {} + .inputs({{ET, {1, 1, 4, 3}, std::vector{1, 3, 2, 7, 5, 6, 3, 5, 2, 1, 0, 7}}, + {ET, {3, 4, 2, 1}, std::vector{3, 1, 6, 2, 3, 10, 9, 8, 2, 9, 3, 2, + 4, 2, 3, 1, 9, 1, 11, 4, 7, 2, 3, 1}}}) + .equation("a...j,j...->a...") + .expectedResult({ET, {1, 4, 2, 4}, std::vector{27, 85, 37, 66, 30, 58, 50, 8, + 37, 123, 55, 83, 16, 48, 24, 30, + 29, 83, 43, 52, 20, 92, 44, 24, + 24, 96, 48, 30, 13, 67, 31, 15}}) + .testcaseName("einsum_ellipsis_complex_mul"), + + Builder {} + .inputs({{ET, {1, 3, 3}, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}}}) + .equation("kii->ki") + .expectedResult({ET, {1, 3}, std::vector{1, 5, 9}}) + .testcaseName("einsum_diagonal"), + + Builder {} + .inputs({{ET, {2, 3, 3, 2, 4}, std::vector{4, 2, 5, 4, 5, 5, 1, 1, 3, 3, 1, 1, 2, 2, 4, 1, 3, 4, + 4, 5, 1, 3, 1, 3, 1, 4, 3, 5, 4, 4, 5, 4, 4, 5, 4, 2, + 2, 2, 3, 3, 1, 1, 4, 3, 4, 2, 2, 1, 1, 2, 3, 1, 1, 4, + 2, 3, 1, 3, 4, 2, 5, 5, 3, 4, 3, 4, 5, 4, 4, 5, 1, 3, + 4, 4, 5, 3, 1, 3, 2, 5, 3, 2, 5, 4, 4, 2, 4, 4, 1, 4, + 4, 5, 4, 4, 4, 2, 3, 3, 4, 2, 4, 2, 5, 1, 3, 2, 4, 3, + 5, 1, 2, 3, 1, 1, 2, 5, 1, 1, 2, 1, 4, 5, 3, 4, 1, 3, + 3, 1, 3, 2, 4, 5, 1, 1, 5, 4, 5, 2, 2, 3, 3, 1, 2, 4}}, + {ET, {3, 2, 1}, std::vector{1, 4, 4, 5, 3, 3}}}) + .equation("abbac,bad->ad") + .expectedResult({ET, {2, 1}, std::vector{123, 129}}) + .testcaseName("einsum_diagonal_with_matmul"), + }; + return params; +} + +std::vector generateCombinedParams() { + const std::vector> generatedParams { + generateParams(), + generateParams(), + }; + std::vector combinedParams; + + for (const auto& params : generatedParams) { + combinedParams.insert(combinedParams.end(), params.begin(), params.end()); + } + return combinedParams; +} + +INSTANTIATE_TEST_SUITE_P(smoke_Einsum_With_Hardcoded_Refs, ReferenceEinsumTest, + testing::ValuesIn(generateCombinedParams()), ReferenceEinsumTest::getTestCaseName); +} // namespace diff --git a/docs/template_plugin/tests/functional/op_reference/extract_image_patches.cpp b/docs/template_plugin/tests/functional/op_reference/extract_image_patches.cpp new file mode 100644 index 00000000000..503880ce8ac --- /dev/null +++ b/docs/template_plugin/tests/functional/op_reference/extract_image_patches.cpp @@ -0,0 +1,246 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include "openvino/opsets/opset3.hpp" +#include "openvino/opsets/opset1.hpp" +#include "base_reference_test.hpp" + +using namespace reference_tests; +using namespace ov; + +namespace { +struct ExtractImagePatchesParams { + Tensor data; + Shape sizes; + Strides strides; + Shape rates; + op::PadType autoPad; + Tensor expectedResult; + std::string testcaseName; +}; + +struct Builder : ParamsBuilder { + REFERENCE_TESTS_ADD_SET_PARAM(Builder, data); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, sizes); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, strides); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, rates); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, autoPad); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, expectedResult); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, testcaseName); +}; + +class ReferenceExtractImagePatchesTest : public testing::TestWithParam, public CommonReferenceTest { +public: + void SetUp() override { + auto params = GetParam(); + function = CreateModel(params); + inputData = {params.data.data}; + refOutData = {params.expectedResult.data}; + } + + static std::string getTestCaseName(const testing::TestParamInfo& obj) { + auto param = obj.param; + std::ostringstream result; + result << "dType=" << param.data.type; + result << "_dShape=" << param.data.shape; + result << "_sizes=" << param.sizes; + result << "_strides=" << param.strides; + result << "_rates=" << param.rates; + result << "_autoPad=" << param.autoPad; + result << "_eType=" << param.expectedResult.type; + result << "_eShape=" << param.expectedResult.shape; + if (param.testcaseName != "") { + result << "_=" << param.testcaseName; + } + return result.str(); + } + +private: + static std::shared_ptr CreateModel(const ExtractImagePatchesParams& params) { + const auto data = std::make_shared(params.data.type, params.data.shape); + const auto extrace_image_patches = std::make_shared(data, + params.sizes, + params.strides, + params.rates, + params.autoPad); + const auto f = std::make_shared(extrace_image_patches, ParameterVector{data}); + return f; + } +}; + +TEST_P(ReferenceExtractImagePatchesTest, CompareWithRefs) { + Exec(); +} + +template +std::vector generateParams() { + using T = typename element_type_traits::value_type; + std::vector params { + Builder {} + .data({ET, {1, 1, 10, 10}, std::vector{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}}) + .sizes({3, 3}) + .strides({5, 5}) + .rates({1, 1}) + .autoPad(op::PadType::VALID) + .expectedResult({ET, {1, 9, 2, 2}, std::vector{ + 1, 6, 51, 56, + 2, 7, 52, 57, + 3, 8, 53, 58, + 11, 16, 61, 66, + 12, 17, 62, 67, + 13, 18, 63, 68, + 21, 26, 71, 76, + 22, 27, 72, 77, + 23, 28, 73, 78}}), + + Builder {} + .data({ET, {1, 1, 10, 10}, std::vector{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}}) + .sizes({4, 4}) + .strides({8, 8}) + .rates({1, 1}) + .autoPad(op::PadType::VALID) + .expectedResult({ET, {1, 16, 1, 1}, std::vector{ + 1, 2, 3, 4, + 11, 12, 13, 14, + 21, 22, 23, 24, + 31, 32, 33, 34}}), + + Builder {} + .data({ET, {1, 1, 10, 10}, std::vector{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}}) + .sizes({4, 4}) + .strides({9, 9}) + .rates({1, 1}) + .autoPad(op::PadType::SAME_UPPER) + .expectedResult({ET, {1, 16, 2, 2}, std::vector{ + 0, 0, 0, 89, + 0, 0, 81, 90, + 0, 0, 82, 0, + 0, 0, 83, 0, + 0, 9, 0, 99, + 1, 10, 91, 100, + 2, 0, 92, 0, + 3, 0, 93, 0, + 0, 19, 0, 0, + 11, 20, 0, 0, + 12, 0, 0, 0, + 13, 0, 0, 0, + 0, 29, 0, 0, + 21, 30, 0, 0, + 22, 0, 0, 0, + 23, 0, 0, 0}}), + + Builder {} + .data({ET, {1, 1, 10, 10}, std::vector{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}}) + .sizes({3, 3}) + .strides({5, 5}) + .rates({2, 2}) + .autoPad(op::PadType::VALID) + .expectedResult({ET, {1, 9, 2, 2}, std::vector{ + 1, 6, 51, 56, + 3, 8, 53, 58, + 5, 10, 55, 60, + 21, 26, 71, 76, + 23, 28, 73, 78, + 25, 30, 75, 80, + 41, 46, 91, 96, + 43, 48, 93, 98, + 45, 50, 95, 100}}), + + Builder {} + .data({ET, {1, 2, 5, 5}, std::vector{ + 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50}}) + .sizes({2, 2}) + .strides({3, 3}) + .rates({1, 1}) + .autoPad(op::PadType::VALID) + .expectedResult({ET, {1, 8, 2, 2}, std::vector{ + 1, 4, 16, 19, + 26, 29, 41, 44, + 2, 5, 17, 20, + 27, 30, 42, 45, + 6, 9, 21, 24, + 31, 34, 46, 49, + 7, 10, 22, 25, + 32, 35, 47, 50}}), + }; + return params; +} + +std::vector generateCombinedParams() { + const std::vector> generatedParams { + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + generateParams(), + }; + std::vector combinedParams; + + for (const auto& params : generatedParams) { + combinedParams.insert(combinedParams.end(), params.begin(), params.end()); + } + return combinedParams; +} + +INSTANTIATE_TEST_SUITE_P(smoke_ExtractImagePatches_With_Hardcoded_Refs, ReferenceExtractImagePatchesTest, + testing::ValuesIn(generateCombinedParams()), ReferenceExtractImagePatchesTest::getTestCaseName); +} // namespace diff --git a/docs/template_plugin/tests/functional/op_reference/lstm_cell.cpp b/docs/template_plugin/tests/functional/op_reference/lstm_cell.cpp index c28bbf0ba94..493224da17b 100644 --- a/docs/template_plugin/tests/functional/op_reference/lstm_cell.cpp +++ b/docs/template_plugin/tests/functional/op_reference/lstm_cell.cpp @@ -4,7 +4,8 @@ #include -#include "openvino/op/lstm_cell.hpp" +#include "openvino/opsets/opset4.hpp" +#include "openvino/opsets/opset1.hpp" #include "base_reference_test.hpp" using namespace reference_tests; @@ -12,13 +13,6 @@ using namespace ov; namespace { struct LSTMCellParams { - LSTMCellParams( - int32_t batchSize, int32_t inputSize, int32_t hiddenSize, int32_t gatesCount, - const Tensor& X, const Tensor& W, const Tensor& R, const Tensor& H_t, const Tensor& C_t, const Tensor& B, - const Tensor& Ho, const Tensor& Co, const std::string& testcaseName = "") : - batchSize(batchSize), inputSize(inputSize), hiddenSize(hiddenSize), gatesCount(gatesCount), - X(X), W(W), R(R), H_t(H_t), C_t(C_t), B(B), Ho(Ho), Co(Co), testcaseName(testcaseName) {} - int32_t batchSize; int32_t inputSize; int32_t hiddenSize; @@ -34,6 +28,22 @@ struct LSTMCellParams { std::string testcaseName; }; +struct Builder : ParamsBuilder { + REFERENCE_TESTS_ADD_SET_PARAM(Builder, batchSize); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, inputSize); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, hiddenSize); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, gatesCount); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, X); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, W); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, R); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, H_t); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, C_t); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, B); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, Ho); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, Co); + REFERENCE_TESTS_ADD_SET_PARAM(Builder, testcaseName); +}; + class ReferenceLSTMCellTest : public testing::TestWithParam, public CommonReferenceTest { public: void SetUp() override { @@ -63,26 +73,24 @@ public: result << "_hoType=" << param.Ho.type; result << "_hoShape=" << param.Ho.shape; result << "_coType=" << param.Co.type; + result << "_coShape=" << param.Co.shape; if (param.testcaseName != "") { - result << "_coShape=" << param.Co.shape; result << "_=" << param.testcaseName; - } else { - result << "_coShape=" << param.Co.shape; } return result.str(); } private: static std::shared_ptr CreateFunction(const LSTMCellParams& params) { - const auto X = std::make_shared(params.X.type, params.X.shape); - const auto W = std::make_shared(params.W.type, params.W.shape); - const auto R = std::make_shared(params.R.type, params.R.shape); - const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); - const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); - const auto B = std::make_shared(params.B.type, params.B.shape); + const auto X = std::make_shared(params.X.type, params.X.shape); + const auto W = std::make_shared(params.W.type, params.W.shape); + const auto R = std::make_shared(params.R.type, params.R.shape); + const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); + const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); + const auto B = std::make_shared(params.B.type, params.B.shape); const auto lstm_cell = - std::make_shared(X, + std::make_shared(X, H_t, C_t, op::util::convert_lstm_node_format(W, op::util::LSTMWeightsFormat::IOFC), @@ -107,15 +115,15 @@ public: private: static std::shared_ptr CreateFunction(const LSTMCellParams& params) { - const auto X = std::make_shared(params.X.type, params.X.shape); - const auto W = std::make_shared(params.W.type, params.W.shape); - const auto R = std::make_shared(params.R.type, params.R.shape); - const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); - const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); - const auto B = std::make_shared(params.B.type, params.B.shape); + const auto X = std::make_shared(params.X.type, params.X.shape); + const auto W = std::make_shared(params.W.type, params.W.shape); + const auto R = std::make_shared(params.R.type, params.R.shape); + const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); + const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); + const auto B = std::make_shared(params.B.type, params.B.shape); const auto lstm_cell = - std::make_shared(X, + std::make_shared(X, H_t, C_t, op::util::convert_lstm_node_format(W, op::util::LSTMWeightsFormat::IOFC), @@ -142,15 +150,15 @@ private: static std::shared_ptr CreateFunction(const LSTMCellParams& params) { const float clip_threshold = 3.5f; - const auto X = std::make_shared(params.X.type, params.X.shape); - const auto W = std::make_shared(params.W.type, params.W.shape); - const auto R = std::make_shared(params.R.type, params.R.shape); - const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); - const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); - const auto B = std::make_shared(params.B.type, params.B.shape); + const auto X = std::make_shared(params.X.type, params.X.shape); + const auto W = std::make_shared(params.W.type, params.W.shape); + const auto R = std::make_shared(params.R.type, params.R.shape); + const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); + const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); + const auto B = std::make_shared(params.B.type, params.B.shape); const auto lstm_cell = - std::make_shared(X, + std::make_shared(X, H_t, C_t, W, @@ -179,36 +187,130 @@ TEST_P(ReferenceLSTMCellTestBiasClip, CompareWithRefs) { Exec(); } +class ReferenceLSTMCellV1Test : public ReferenceLSTMCellTest { +private: + static std::shared_ptr CreateFunction(const LSTMCellParams& params) { + const auto X = std::make_shared(params.X.type, params.X.shape); + const auto W = std::make_shared(params.W.type, params.W.shape); + const auto R = std::make_shared(params.R.type, params.R.shape); + const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); + const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); + const auto B = std::make_shared(params.B.type, params.B.shape); + + const auto lstm_cell = + std::make_shared(X, + H_t, + C_t, + op::util::convert_lstm_node_format(W, op::util::LSTMWeightsFormat::IOFC), + op::util::convert_lstm_node_format(R, op::util::LSTMWeightsFormat::IOFC), + op::util::convert_lstm_node_format(B, op::util::LSTMWeightsFormat::IOFC), + params.hiddenSize); + + auto function = std::make_shared(lstm_cell->outputs(), ParameterVector{X, H_t, C_t, W, R, B}); + return function; + } +}; + +class ReferenceLSTMCellV1TestBiasDefaultAttrs : public ReferenceLSTMCellTestBiasDefaultAttrs { +private: + static std::shared_ptr CreateFunction(const LSTMCellParams& params) { + const auto X = std::make_shared(params.X.type, params.X.shape); + const auto W = std::make_shared(params.W.type, params.W.shape); + const auto R = std::make_shared(params.R.type, params.R.shape); + const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); + const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); + const auto B = std::make_shared(params.B.type, params.B.shape); + + const auto lstm_cell = + std::make_shared(X, + H_t, + C_t, + op::util::convert_lstm_node_format(W, op::util::LSTMWeightsFormat::IOFC), + op::util::convert_lstm_node_format(R, op::util::LSTMWeightsFormat::IOFC), + op::util::convert_lstm_node_format(B, op::util::LSTMWeightsFormat::IOFC), + params.hiddenSize); + + auto function = std::make_shared(lstm_cell->outputs(), ParameterVector{X, H_t, C_t, W, R, B}); + return function; + } +}; + +class ReferenceLSTMCellV1TestBiasClip : public ReferenceLSTMCellTestBiasClip { +private: + static std::shared_ptr CreateFunction(const LSTMCellParams& params) { + const float clip_threshold = 3.5f; + + const auto X = std::make_shared(params.X.type, params.X.shape); + const auto W = std::make_shared(params.W.type, params.W.shape); + const auto R = std::make_shared(params.R.type, params.R.shape); + const auto H_t = std::make_shared(params.H_t.type, params.H_t.shape); + const auto C_t = std::make_shared(params.C_t.type, params.C_t.shape); + const auto B = std::make_shared(params.B.type, params.B.shape); + + const auto lstm_cell = + std::make_shared(X, + H_t, + C_t, + W, + R, + B, + params.hiddenSize, + op::LSTMWeightsFormat::IFCO, + std::vector{"sigmoid", "tanh", "tanh"}, + std::vector{}, + std::vector{}, + clip_threshold); + + auto function = std::make_shared(lstm_cell->outputs(), ParameterVector{X, H_t, C_t, W, R, B}); + return function; + } +}; + +TEST_P(ReferenceLSTMCellV1Test, CompareWithRefs) { + Exec(); +} + +TEST_P(ReferenceLSTMCellV1TestBiasDefaultAttrs, CompareWithRefs) { + Exec(); +} + +TEST_P(ReferenceLSTMCellV1TestBiasClip, CompareWithRefs) { + Exec(); +} + template std::vector generateParams() { using T = typename element_type_traits::value_type; std::vector params { - LSTMCellParams( - 2, 3, 3, 4, - Tensor(ET, {2, 3}, std::vector{ - 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f}), - Tensor(ET, {4 * 3, 3}, std::vector{ - 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, - 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, - 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, - 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, - 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, - 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f}), - Tensor(ET, {4 * 3, 3}, std::vector{ - 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, - 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, - 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, - 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, - 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, - 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f}), - Tensor(ET, {2, 3}, std::vector{ - 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f}), - Tensor(ET, {2, 3}, std::vector{ - 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f}), - Tensor(ET, {4 * 3}, std::vector(4 * 3, 0.f)), - Tensor(ET, {2, 3}, std::vector{0.81457126f, 0.61109227f, 0.769522f, 0.52239674f, 0.4324641f, 0.63183f}), - Tensor(ET, {2, 3}, std::vector{1.4444952f, 0.9635685f, 1.2875274f, 0.8053419f, 0.7184521f, 0.95803297f}), - "lstm_cell_zero_bias_default_attrs"), + Builder {} + .batchSize(2) + .inputSize(3) + .hiddenSize(3) + .gatesCount(4) + .X(Tensor(ET, {2, 3}, std::vector{ + 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f})) + .W(Tensor(ET, {4 * 3, 3}, std::vector{ + 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, + 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, + 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, + 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, + 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, + 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f})) + .R(Tensor(ET, {4 * 3, 3}, std::vector{ + 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, + 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, + 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, + 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, + 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, + 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f})) + .H_t(Tensor(ET, {2, 3}, std::vector{ + 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f})) + .C_t(Tensor(ET, {2, 3}, std::vector{ + 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f})) + .B(Tensor(ET, {4 * 3}, std::vector(4 * 3, 0.f))) + .Ho(Tensor(ET, {2, 3}, std::vector{0.81457126f, 0.61109227f, 0.769522f, 0.52239674f, 0.4324641f, 0.63183f})) + .Co(Tensor(ET, {2, 3}, std::vector{1.4444952f, 0.9635685f, 1.2875274f, 0.8053419f, 0.7184521f, 0.95803297f})) + .testcaseName("lstm_cell_zero_bias_default_attrs") }; return params; } @@ -232,53 +334,56 @@ template std::vector generateParamsBiasDefaultAttrs() { using T = typename element_type_traits::value_type; std::vector params { - LSTMCellParams( - 2, 3, 3, 4, - Tensor(ET, {2, 3}, std::vector{ - 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f}), - Tensor(ET, {4 * 3, 3}, std::vector{ - 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, - 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, - 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, - 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, - 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, - 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f}), - Tensor(ET, {4 * 3, 3}, std::vector{ - 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, - 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, - 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, - 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, - 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, - 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f}), - Tensor(ET, {2, 3}, std::vector{ - 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f}), - Tensor(ET, {2, 3}, std::vector{ - 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f}), - Tensor(ET, {4 * 3}, std::vector{1.07393714f, - 1.15248052f, - 1.16671345f, - 0.21450312f, - 1.2380678f, - 1.51688835f, - 0.46718366f, - 0.91810346f, - 1.1274234f, - 0.51022074f, - 1.11389844f, - 0.74174305f}), - Tensor(ET, {2, 3}, std::vector{0.81014400720596313, + Builder {} + .batchSize(2) + .inputSize(3) + .hiddenSize(3) + .gatesCount(4) + .X(Tensor(ET, {2, 3}, std::vector{ + 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f})) + .W(Tensor(ET, {4 * 3, 3}, std::vector{ + 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, + 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, + 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, + 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, + 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, + 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f})) + .R(Tensor(ET, {4 * 3, 3}, std::vector{ + 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, + 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, + 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, + 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, + 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, + 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f})) + .H_t(Tensor(ET, {2, 3}, std::vector{ + 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f})) + .C_t(Tensor(ET, {2, 3}, std::vector{ + 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f})) + .B(Tensor(ET, {4 * 3}, std::vector{1.07393714f, + 1.15248052f, + 1.16671345f, + 0.21450312f, + 1.2380678f, + 1.51688835f, + 0.46718366f, + 0.91810346f, + 1.1274234f, + 0.51022074f, + 1.11389844f, + 0.74174305f})) + .Ho(Tensor(ET, {2, 3}, std::vector{0.81014400720596313, 0.76665538549423218, 0.82509011030197144, 0.6479143500328064, 0.66586339473724365, - 0.74838578701019287}), - Tensor(ET, {2, 3}, std::vector{1.6800162792205811, + 0.74838578701019287})) + .Co(Tensor(ET, {2, 3}, std::vector{1.6800162792205811, 1.1150213479995728, 1.4578367471694946, 1.0649888515472412, 0.93761754035949707, - 1.3659683465957642}), - "lstm_cell_bias_default_attrs"), + 1.3659683465957642})) + .testcaseName("lstm_cell_bias_default_attrs"), }; return params; } @@ -302,53 +407,56 @@ template std::vector generateParamsBiasClip() { using T = typename element_type_traits::value_type; std::vector params { - LSTMCellParams( - 2, 3, 3, 4, - Tensor(ET, {2, 3}, std::vector{ - 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f}), - Tensor(ET, {4 * 3, 3}, std::vector{ - 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, - 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, - 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, - 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, - 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, - 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f}), - Tensor(ET, {4 * 3, 3}, std::vector{ - 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, - 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, - 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, - 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, - 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, - 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f}), - Tensor(ET, {2, 3}, std::vector{ - 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f}), - Tensor(ET, {2, 3}, std::vector{ - 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f}), - Tensor(ET, {4 * 3}, std::vector{1.07393714f, - 1.15248052f, - 1.16671345f, - 0.21450312f, - 1.2380678f, - 1.51688835f, - 0.46718366f, - 0.91810346f, - 1.1274234f, - 0.51022074f, - 1.11389844f, - 0.74174305f}), - Tensor(ET, {2, 3}, std::vector{0.81014400720596313, + Builder {} + .batchSize(2) + .inputSize(3) + .hiddenSize(3) + .gatesCount(4) + .X(Tensor(ET, {2, 3}, std::vector{ + 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f})) + .W(Tensor(ET, {4 * 3, 3}, std::vector{ + 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, + 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, + 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, + 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, + 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, + 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f})) + .R(Tensor(ET, {4 * 3, 3}, std::vector{ + 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, + 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, + 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, + 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, + 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, + 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f})) + .H_t(Tensor(ET, {2, 3}, std::vector{ + 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f})) + .C_t(Tensor(ET, {2, 3}, std::vector{ + 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f})) + .B(Tensor(ET, {4 * 3}, std::vector{1.07393714f, + 1.15248052f, + 1.16671345f, + 0.21450312f, + 1.2380678f, + 1.51688835f, + 0.46718366f, + 0.91810346f, + 1.1274234f, + 0.51022074f, + 1.11389844f, + 0.74174305f})) + .Ho(Tensor(ET, {2, 3}, std::vector{0.81014400720596313, 0.76665538549423218, 0.82387429475784302, 0.6479143500328064, 0.66586339473724365, - 0.74838578701019287}), - Tensor(ET, {2, 3}, std::vector{1.6800162792205811, + 0.74838578701019287})) + .Co(Tensor(ET, {2, 3}, std::vector{1.6800162792205811, 1.1150213479995728, 1.4510968923568726, 1.0649888515472412, 0.93761754035949707, - 1.3659683465957642}), - "lstm_cell_bias_clip"), + 1.3659683465957642})) + .testcaseName("lstm_cell_bias_clip"), }; return params; } @@ -376,4 +484,211 @@ INSTANTIATE_TEST_SUITE_P(smoke_LSTMCell_With_Hardcoded_Refs, ReferenceLSTMCellTe INSTANTIATE_TEST_SUITE_P(smoke_LSTMCell_With_Hardcoded_Refs, ReferenceLSTMCellTestBiasClip, testing::ValuesIn(generateCombinedParamsBiasClip()), ReferenceLSTMCellTest::getTestCaseName); -} // namespace + +template +std::vector generateParamsV1() { + using T = typename element_type_traits::value_type; + std::vector params { + Builder {} + .batchSize(2) + .inputSize(3) + .hiddenSize(3) + .gatesCount(4) + .X(Tensor(ET, {2, 3}, std::vector{ + 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f})) + .W(Tensor(ET, {4 * 3, 3}, std::vector{ + 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, + 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, + 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, + 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, + 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, + 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f})) + .R(Tensor(ET, {4 * 3, 3}, std::vector{ + 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, + 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, + 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, + 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, + 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, + 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f})) + .H_t(Tensor(ET, {2, 3}, std::vector{ + 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f})) + .C_t(Tensor(ET, {2, 3}, std::vector{ + 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f})) + .B(Tensor(ET, {4 * 3}, std::vector(4 * 3, 0.f))) + .Ho(Tensor(ET, {2, 3}, std::vector{0.81457126f, 0.61109227f, 0.769522f, 0.52239674f, 0.4324641f, 0.63183f})) + .Co(Tensor(ET, {2, 3}, std::vector{1.4444952f, 0.9635685f, 1.2875274f, 0.8053419f, 0.7184521f, 0.95803297f})) + .testcaseName("lstm_cell_v1_zero_bias_default_attrs") + }; + return params; +} + +std::vector generateCombinedParamsV1() { + const std::vector> generatedParams { + generateParamsV1(), + generateParamsV1(), + generateParamsV1(), + generateParamsV1(), + }; + std::vector combinedParams; + + for (const auto& params : generatedParams) { + combinedParams.insert(combinedParams.end(), params.begin(), params.end()); + } + return combinedParams; +} + +template +std::vector generateParamsBiasDefaultAttrsV1() { + using T = typename element_type_traits::value_type; + std::vector params { + Builder {} + .batchSize(2) + .inputSize(3) + .hiddenSize(3) + .gatesCount(4) + .X(Tensor(ET, {2, 3}, std::vector{ + 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f})) + .W(Tensor(ET, {4 * 3, 3}, std::vector{ + 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, + 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, + 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, + 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, + 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, + 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f})) + .R(Tensor(ET, {4 * 3, 3}, std::vector{ + 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, + 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, + 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, + 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, + 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, + 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f})) + .H_t(Tensor(ET, {2, 3}, std::vector{ + 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f})) + .C_t(Tensor(ET, {2, 3}, std::vector{ + 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f})) + .B(Tensor(ET, {4 * 3}, std::vector{1.07393714f, + 1.15248052f, + 1.16671345f, + 0.21450312f, + 1.2380678f, + 1.51688835f, + 0.46718366f, + 0.91810346f, + 1.1274234f, + 0.51022074f, + 1.11389844f, + 0.74174305f})) + .Ho(Tensor(ET, {2, 3}, std::vector{0.81014400720596313, + 0.76665538549423218, + 0.82509011030197144, + 0.6479143500328064, + 0.66586339473724365, + 0.74838578701019287})) + .Co(Tensor(ET, {2, 3}, std::vector{1.6800162792205811, + 1.1150213479995728, + 1.4578367471694946, + 1.0649888515472412, + 0.93761754035949707, + 1.3659683465957642})) + .testcaseName("lstm_cell_v1_bias_default_attrs"), + }; + return params; +} + +std::vector generateCombinedParamsBiasDefaultAttrsV1() { + const std::vector> generatedParams { + generateParamsBiasDefaultAttrsV1(), + generateParamsBiasDefaultAttrsV1(), + generateParamsBiasDefaultAttrsV1(), + generateParamsBiasDefaultAttrsV1(), + }; + std::vector combinedParams; + + for (const auto& params : generatedParams) { + combinedParams.insert(combinedParams.end(), params.begin(), params.end()); + } + return combinedParams; +} + +template +std::vector generateParamsBiasClipV1() { + using T = typename element_type_traits::value_type; + std::vector params { + Builder {} + .batchSize(2) + .inputSize(3) + .hiddenSize(3) + .gatesCount(4) + .X(Tensor(ET, {2, 3}, std::vector{ + 0.81342685f, 0.84108883f, 0.8152282f, 0.46893653f, 0.0901856f, 0.37088776f})) + .W(Tensor(ET, {4 * 3, 3}, std::vector{ + 3.3330739e-01f, 3.6229487e-04f, 4.6773660e-01f, 4.3046016e-01f, 7.3950343e-02f, 3.8063636e-01f, + 9.6921772e-01f, 9.6897459e-01f, 6.2964785e-01f, 3.1134409e-01f, 8.4709978e-01f, 9.4928098e-01f, + 6.1676943e-01f, 6.6020679e-01f, 1.9072217e-01f, 8.8032126e-02f, 4.0472135e-01f, 6.8342745e-01f, + 8.3432144e-01f, 4.4928190e-01f, 7.9524308e-01f, 5.3966165e-01f, 8.5936421e-01f, 8.3136767e-01f, + 5.5125546e-02f, 4.7791195e-01f, 3.5788772e-01f, 6.7507404e-01f, 2.1716513e-01f, 2.7473119e-01f, + 3.3999152e-02f, 9.6835363e-01f, 3.7581277e-01f, 2.4026000e-01f, 6.7418844e-01f, 3.4199652e-01f})) + .R(Tensor(ET, {4 * 3, 3}, std::vector{ + 0.0987983f, 0.52032113f, 0.5848073f, 0.5356095f, 0.74497133f, 0.73260087f, + 0.1700787f, 0.45684233f, 0.1495722f, 0.42734373f, 0.4433832f, 0.25906256f, + 0.03854987f, 0.47480518f, 0.37215272f, 0.99890584f, 0.74019486f, 0.3518967f, + 0.6881257f, 0.8170279f, 0.54088944f, 0.81225616f, 0.14619833f, 0.42941234f, + 0.86843914f, 0.45967972f, 0.6237719f, 0.11074839f, 0.6029616f, 0.3149305f, + 0.46504205f, 0.5843412f, 0.8733427f, 0.7687243f, 0.07074859f, 0.39188156f})) + .H_t(Tensor(ET, {2, 3}, std::vector{ + 0.77956f, 0.5331557f, 0.04297554f, 0.7962175f, 0.7635707f, 0.11989366f})) + .C_t(Tensor(ET, {2, 3}, std::vector{ + 0.8488452f, 0.18851636f, 0.5020695f, 0.29716516f, 0.06740791f, 0.45384037f})) + .B(Tensor(ET, {4 * 3}, std::vector{1.07393714f, + 1.15248052f, + 1.16671345f, + 0.21450312f, + 1.2380678f, + 1.51688835f, + 0.46718366f, + 0.91810346f, + 1.1274234f, + 0.51022074f, + 1.11389844f, + 0.74174305f})) + .Ho(Tensor(ET, {2, 3}, std::vector{0.81014400720596313, + 0.76665538549423218, + 0.82387429475784302, + 0.6479143500328064, + 0.66586339473724365, + 0.74838578701019287})) + .Co(Tensor(ET, {2, 3}, std::vector{1.6800162792205811, + 1.1150213479995728, + 1.4510968923568726, + 1.0649888515472412, + 0.93761754035949707, + 1.3659683465957642})) + .testcaseName("lstm_cell_v1_bias_clip"), + }; + return params; +} + +std::vector generateCombinedParamsBiasClipV1() { + const std::vector> generatedParams { + generateParamsBiasClipV1(), + generateParamsBiasClipV1(), + generateParamsBiasClipV1(), + generateParamsBiasClipV1(), + }; + std::vector combinedParams; + + for (const auto& params : generatedParams) { + combinedParams.insert(combinedParams.end(), params.begin(), params.end()); + } + return combinedParams; +} + +INSTANTIATE_TEST_SUITE_P(smoke_LSTMCellV1_With_Hardcoded_Refs, ReferenceLSTMCellV1Test, + testing::ValuesIn(generateCombinedParamsV1()), ReferenceLSTMCellV1Test::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_LSTMCellV1_With_Hardcoded_Refs, ReferenceLSTMCellV1TestBiasDefaultAttrs, + testing::ValuesIn(generateCombinedParamsBiasDefaultAttrsV1()), ReferenceLSTMCellV1Test::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_LSTMCellV1_With_Hardcoded_Refs, ReferenceLSTMCellV1TestBiasClip, + testing::ValuesIn(generateCombinedParamsBiasClipV1()), ReferenceLSTMCellV1Test::getTestCaseName); +} // namespace \ No newline at end of file diff --git a/docs/template_plugin/tests/functional/op_reference/topk.cpp b/docs/template_plugin/tests/functional/op_reference/topk.cpp index 40907722f27..f571096dabb 100644 --- a/docs/template_plugin/tests/functional/op_reference/topk.cpp +++ b/docs/template_plugin/tests/functional/op_reference/topk.cpp @@ -4,8 +4,8 @@ #include -#include "openvino/op/topk.hpp" -#include "openvino/op/constant.hpp" +#include "openvino/opsets/opset3.hpp" +#include "openvino/opsets/opset1.hpp" #include "base_reference_test.hpp" using namespace reference_tests; @@ -15,7 +15,7 @@ namespace { struct TopKParams { TopKParams( const Tensor& A, const Tensor& k, const int64_t axis, - const op::v1::TopK::Mode mode, const op::v1::TopK::SortType sort, + const opset1::TopK::Mode mode, const opset1::TopK::SortType sort, const Tensor& result0, const Tensor& result1, const size_t outIdx, const std::string& testcaseName = "") : A(A), k(k), axis(axis), mode(mode), sort(sort), @@ -25,8 +25,8 @@ struct TopKParams { Tensor A; Tensor k; int64_t axis; - op::v1::TopK::Mode mode; - op::v1::TopK::SortType sort; + opset1::TopK::Mode mode; + opset1::TopK::SortType sort; Tensor result0; Tensor result1; size_t outIdx; @@ -71,7 +71,6 @@ struct TopKParamsResnet50 { std::string testcaseName; }; - class ReferenceTopKTestResnet50 : public testing::TestWithParam, public CommonReferenceTest { public: void SetUp() override { @@ -101,18 +100,18 @@ public: private: static std::shared_ptr CreateFunction(const TopKParamsResnet50& params) { - const auto A = std::make_shared(params.A.type, + const auto A = std::make_shared(params.A.type, params.A.shape); - const auto B = std::make_shared(A, - op::v0::Constant::create(element::i64, {}, {5}), + const auto B = std::make_shared(A, + opset1::Constant::create(element::i64, {}, {5}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES); - const auto C = std::make_shared(A, - op::v0::Constant::create(element::i64, {}, {1}), + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES); + const auto C = std::make_shared(A, + opset1::Constant::create(element::i64, {}, {1}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES); + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES); const auto out5_value = B->output(0); const auto out5_index = B->output(1); @@ -220,12 +219,12 @@ public: private: static std::shared_ptr CreateFunction(const TopKParams& params) { - const auto A = std::make_shared(params.A.type, + const auto A = std::make_shared(params.A.type, params.A.shape); - const auto k = op::v0::Constant::create(params.k.type, + const auto k = opset1::Constant::create(params.k.type, params.k.shape, params.k.data.data()); - const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); const auto f = std::make_shared(B->outputs(), ParameterVector{A}); return f; } @@ -253,8 +252,8 @@ std::vector generateParamsMaxMinSort() { }({128, 1000})), Tensor(ET2, {}, std::vector{5}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::NONE, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::NONE, Tensor(ET, {128, 5}, [](std::vector rshape, std::vector shape) -> std::vector{ std::vector expected_value; for (size_t i = 0; i < rshape[0]; i++) { @@ -292,8 +291,8 @@ std::vector generateParamsMaxMinSort() { }({128, 1000})), Tensor(ET2, {}, std::vector{5}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::NONE, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::NONE, Tensor(ET, {128, 5}, [](std::vector rshape) -> std::vector{ std::vector expected_value; for (size_t i = 0; i < rshape[0]; i++) { @@ -331,8 +330,8 @@ std::vector generateParamsMaxMinSort() { }({128, 1000})), Tensor(ET2, {}, std::vector{5}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {128, 5}, [](std::vector rshape, std::vector shape) -> std::vector{ std::vector expected_value; for (size_t i = 0; i < rshape[0]; i++) { @@ -366,8 +365,8 @@ std::vector generateParamsMaxMinSort() { }({128, 1000})), Tensor(ET2, {}, std::vector{5}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {128, 5}, [](std::vector rshape) -> std::vector{ std::vector expected_value; for (size_t i = 0; i < rshape[0]; i++) { @@ -401,8 +400,8 @@ std::vector generateParamsMaxMinSort() { }({128, 1000})), Tensor(ET2, {}, std::vector{5}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_INDICES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_INDICES, Tensor(ET, {128, 5}, [](std::vector rshape, std::vector shape) -> std::vector{ std::vector expected_value; for (size_t i = 0; i < rshape[0]; i++) { @@ -440,8 +439,8 @@ std::vector generateParamsMaxMinSort() { }({128, 1000})), Tensor(ET2, {}, std::vector{5}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_INDICES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_INDICES, Tensor(ET, {128, 5}, [](std::vector rshape) -> std::vector{ std::vector expected_value; for (size_t i = 0; i < rshape[0]; i++) { @@ -467,8 +466,8 @@ std::vector generateParamsMaxMinSort() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{5, 4, 3}), Tensor(ET_OUT, {3}, std::vector{3, 4, 0}), 0, @@ -478,8 +477,8 @@ std::vector generateParamsMaxMinSort() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_INDICES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_INDICES, Tensor(ET, {3}, std::vector{3, 5, 4}), Tensor(ET_OUT, {3}, std::vector{0, 3, 4}), 0, @@ -489,8 +488,8 @@ std::vector generateParamsMaxMinSort() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{1, 2, 3}), Tensor(ET_OUT, {3}, std::vector{1, 2, 0}), 0, @@ -500,8 +499,8 @@ std::vector generateParamsMaxMinSort() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_INDICES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_INDICES, Tensor(ET, {3}, std::vector{3, 1, 2}), Tensor(ET_OUT, {3}, std::vector{0, 1, 2}), 0, @@ -536,7 +535,7 @@ std::vector generateCombinedParamsMaxMinSort() { INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestMaxMinSort, testing::ValuesIn(generateCombinedParamsMaxMinSort()), ReferenceTopKTest::getTestCaseName); -class ReferenceTopKTestV3 : public ReferenceTopKTest { +class ReferenceTopKTestBackend : public ReferenceTopKTest { public: void SetUp() override { auto params = GetParam(); @@ -547,18 +546,18 @@ public: private: static std::shared_ptr CreateFunction(const TopKParams& params) { - const auto A = std::make_shared(params.A.type, + const auto A = std::make_shared(params.A.type, params.A.shape); - const auto k = op::v0::Constant::create(params.k.type, + const auto k = opset1::Constant::create(params.k.type, params.k.shape, params.k.data.data()); - const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); const auto f = std::make_shared(B->outputs(), ParameterVector{A}); return f; } }; -TEST_P(ReferenceTopKTestV3, CompareWithRefs) { +TEST_P(ReferenceTopKTestBackend, CompareWithRefs) { Exec(); } @@ -572,8 +571,8 @@ std::vector generateParamsV3() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{5, 4, 3}), Tensor(ET_OUT, {3}, std::vector{3, 4, 0}), 0, @@ -583,8 +582,8 @@ std::vector generateParamsV3() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_INDICES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_INDICES, Tensor(ET, {3}, std::vector{3, 5, 4}), Tensor(ET_OUT, {3}, std::vector{0, 3, 4}), 0, @@ -594,8 +593,8 @@ std::vector generateParamsV3() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{1, 2, 3}), Tensor(ET_OUT, {3}, std::vector{1, 2, 0}), 0, @@ -605,8 +604,8 @@ std::vector generateParamsV3() { Tensor(ET, {5}, std::vector{3, 1, 2, 5, 4}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_INDICES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_INDICES, Tensor(ET, {3}, std::vector{3, 1, 2}), Tensor(ET_OUT, {3}, std::vector{0, 1, 2}), 0, @@ -615,7 +614,7 @@ std::vector generateParamsV3() { return params; } -std::vector generateCombinedParamsV3() { +std::vector generateCombinedParamsBackend() { const std::vector> generatedParams { generateParamsMaxMinSort(), generateParamsMaxMinSort(), @@ -638,8 +637,8 @@ std::vector generateCombinedParamsV3() { return combinedParams; } -INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestV3, - testing::ValuesIn(generateCombinedParamsV3()), ReferenceTopKTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestBackend, + testing::ValuesIn(generateCombinedParamsBackend()), ReferenceTopKTest::getTestCaseName); class ReferenceTopKTest1dMaxMin : public ReferenceTopKTest { public: @@ -673,12 +672,12 @@ public: private: static std::shared_ptr CreateFunction(const TopKParams& params, size_t out_idx) { - const auto A = std::make_shared(params.A.type, + const auto A = std::make_shared(params.A.type, params.A.shape); - const auto k = op::v0::Constant::create(params.k.type, + const auto k = opset1::Constant::create(params.k.type, params.k.shape, params.k.data.data()); - const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); const auto f = std::make_shared(OutputVector{B->output(out_idx)}, ParameterVector{A}); return f; } @@ -698,8 +697,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET2, {}, std::vector{6}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET_OUT, {6}, std::vector{5, 4, 3, 2, 1, 0}), 0, @@ -709,8 +708,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET2, {}, std::vector{6}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET_OUT, {6}, std::vector{5, 4, 3, 2, 1, 0}), 1, @@ -720,8 +719,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{6, 5, 4}), Tensor(ET_OUT, {3}, std::vector{5, 4, 3}), 0, @@ -731,8 +730,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{6, 5, 4}), Tensor(ET_OUT, {3}, std::vector{5, 4, 3}), 1, @@ -742,8 +741,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {1}, std::vector{6}), Tensor(ET_OUT, {1}, std::vector{5}), 0, @@ -753,8 +752,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {1}, std::vector{6}), Tensor(ET_OUT, {1}, std::vector{5}), 1, @@ -764,8 +763,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET2, {}, std::vector{6}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET_OUT, {6}, std::vector{5, 4, 3, 2, 1, 0}), 0, @@ -775,8 +774,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET2, {}, std::vector{6}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {6}, std::vector{1, 2, 3, 4, 5, 6}), Tensor(ET_OUT, {6}, std::vector{5, 4, 3, 2, 1, 0}), 1, @@ -786,8 +785,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{1, 2, 3}), Tensor(ET_OUT, {3}, std::vector{5, 4, 3}), 0, @@ -797,8 +796,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET2, {}, std::vector{3}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {3}, std::vector{1, 2, 3}), Tensor(ET_OUT, {3}, std::vector{5, 4, 3}), 1, @@ -808,8 +807,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {1}, std::vector{1}), Tensor(ET_OUT, {1}, std::vector{5}), 0, @@ -819,8 +818,8 @@ std::vector generateParams1dMaxMin() { Tensor(ET, {6}, std::vector{6, 5, 4, 3, 2, 1}), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {1}, std::vector{1}), Tensor(ET_OUT, {1}, std::vector{5}), 1, @@ -832,8 +831,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{3}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3, 2}, std::vector{ 10, 12, 9, 4, 8, 2, 11, 7, 6, 3, 5, 1 }), @@ -849,8 +848,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{3}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3, 2}, std::vector{ 10, 12, 9, 4, 8, 2, 11, 7, 6, 3, 5, 1 }), @@ -882,8 +881,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 2, 3, 2, 4}, std::vector{ 169, 241, 177, 249, 185, 233, 170, 242, 178, 250, 186, 258, 171, 243, 179, 251, 187, 259, 172, 224, 180, 252, 188, 260, 149, 221, 157, 229, 165, 113, 150, 222, @@ -923,8 +922,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 2, 3, 2, 4}, std::vector{ 169, 241, 177, 249, 185, 233, 170, 242, 178, 250, 186, 258, 171, 243, 179, 251, 187, 259, 172, 224, 180, 252, 188, 260, 149, 221, 157, 229, 165, 113, 150, 222, @@ -948,8 +947,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 2, 2}, std::vector{ 10, 12, 9, 4, 11, 7, 6, 3 }), @@ -965,8 +964,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 2, 2}, std::vector{ 10, 12, 9, 4, 11, 7, 6, 3 }), @@ -982,8 +981,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 1, 2}, std::vector{ 10, 12, 11, 7 }), @@ -999,8 +998,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 1, 2}, std::vector{ 10, 12, 11, 7 }), @@ -1016,8 +1015,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{3}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3, 2}, std::vector{ 8, 2, 10, 4, 12, 9, 5, 1, 6, 3, 11, 7 }), @@ -1033,8 +1032,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{3}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3, 2}, std::vector{ 8, 2, 10, 4, 12, 9, 5, 1, 6, 3, 11, 7 }), @@ -1050,8 +1049,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 2, 2}, std::vector{ 8, 2, 10, 4, 5, 1, 6, 3 }), @@ -1067,8 +1066,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 2, 2}, std::vector{ 8, 2, 10, 4, 5, 1, 6, 3 }), @@ -1084,8 +1083,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 1, 2}, std::vector{ 8, 2, 5, 1 }), @@ -1101,8 +1100,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 1, 2}, std::vector{ 8, 2, 5, 1 }), @@ -1118,8 +1117,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{4}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {4, 3}, std::vector{ 12, 11, 10, 9, 8, 7, 6, 2, 5, 3, 1, 4 }), @@ -1135,8 +1134,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{4}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {4, 3}, std::vector{ 12, 11, 10, 9, 8, 7, 6, 2, 5, 3, 1, 4 }), @@ -1152,8 +1151,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3}, std::vector{ 12, 11, 10, 9, 8, 7 }), @@ -1169,8 +1168,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3}, std::vector{ 12, 11, 10, 9, 8, 7 }), @@ -1186,8 +1185,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {1, 3}, std::vector{ 12, 11, 10 }), @@ -1203,8 +1202,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {1, 3}, std::vector{ 12, 11, 10 }), @@ -1220,8 +1219,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 1}, std::vector{ 4, 3 }), @@ -1237,8 +1236,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 1}, std::vector{ 4, 3 }), @@ -1254,8 +1253,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{4}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {4, 3}, std::vector{ 3, 1, 4, 6, 2, 5, 9, 8, 7, 12, 11, 10 }), @@ -1271,8 +1270,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{4}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {4, 3}, std::vector{ 3, 1, 4, 6, 2, 5, 9, 8, 7, 12, 11, 10 }), @@ -1288,8 +1287,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3}, std::vector{ 3, 1, 4, 6, 2, 5 }), @@ -1305,8 +1304,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{2}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3}, std::vector{ 3, 1, 4, 6, 2, 5 }), @@ -1322,8 +1321,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::NONE, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::NONE, Tensor(ET, {1, 3}, std::vector{ 3, 1, 4 }), @@ -1339,8 +1338,8 @@ std::vector generateParams1dMaxMin() { }), Tensor(ET2, {}, std::vector{1}), 0, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::NONE, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::NONE, Tensor(ET, {1, 3}, std::vector{ 3, 1, 4 }), @@ -1380,12 +1379,12 @@ INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTest1dMaxM class ReferenceTopKTestInt64 : public ReferenceTopKTest1dMaxMin { private: static std::shared_ptr CreateFunction(const TopKParams& params, size_t out_idx) { - const auto A = std::make_shared(params.A.type, + const auto A = std::make_shared(params.A.type, params.A.shape); - const auto k = op::v0::Constant::create(params.k.type, + const auto k = opset1::Constant::create(params.k.type, params.k.shape, params.k.data.data()); - const auto B = std::make_shared(A, + const auto B = std::make_shared(A, k, params.axis, params.mode, @@ -1412,8 +1411,8 @@ std::vector generateParamsInt64() { }), Tensor(ET2, {}, std::vector{3}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3, 2}, std::vector{ 10, 12, 9, 4, 8, 2, 11, 7, 6, 3, 5, 1 }), @@ -1428,8 +1427,8 @@ std::vector generateParamsInt64() { }), Tensor(ET2, {}, std::vector{3}), 1, - op::v1::TopK::Mode::MAX, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 3, 2}, std::vector{ 10, 12, 9, 4, 8, 2, 11, 7, 6, 3, 5, 1 }), @@ -1468,12 +1467,12 @@ public: private: static std::shared_ptr CreateFunction(const TopKParams& params) { - const auto A = std::make_shared(params.A.type, + const auto A = std::make_shared(params.A.type, params.A.shape); - const auto k = op::v0::Constant::create(params.k.type, + const auto k = opset1::Constant::create(params.k.type, params.k.shape, params.k.data.data()); - const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); const auto f = std::make_shared(OutputVector{B->output(1)}, ParameterVector{A}); return f; } @@ -1493,8 +1492,8 @@ std::vector generateParamsSingleOutput() { Tensor(ET, {2, 3, 2}, std::vector{12, 2, 10, 9, 8, 4, 6, 1, 5, 3, 11, 7}), Tensor(ET2, {}, std::vector{2}), 1, - op::v1::TopK::Mode::MIN, - op::v1::TopK::SortType::SORT_VALUES, + opset1::TopK::Mode::MIN, + opset1::TopK::SortType::SORT_VALUES, Tensor(ET, {2, 2, 2}, std::vector{}), Tensor(ET_OUT, {2, 2, 2}, std::vector{2, 0, 1, 2, 1, 0, 0, 1}), 0, @@ -1530,19 +1529,181 @@ INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestSingle testing::ValuesIn(generateCombinedParamsSingleOutput()), ReferenceTopKTest::getTestCaseName); TEST(ReferenceTopKTestInvalid, topk_v1_invalid_strings) { - const auto data = std::make_shared(element::f32, Shape{1, 2, 3}); - const auto k = op::v0::Constant::create(element::i64, Shape{}, {1}); - EXPECT_THROW(op::v1::TopK(data, k, 0, "max", "invalid_mode"), ngraph::CheckFailure); - EXPECT_THROW(op::v1::TopK(data, k, 0, "invalid_sort", "index"), ngraph::CheckFailure); + const auto data = std::make_shared(element::f32, Shape{1, 2, 3}); + const auto k = opset1::Constant::create(element::i64, Shape{}, {1}); + EXPECT_THROW(opset1::TopK(data, k, 0, "max", "invalid_mode"), ngraph::CheckFailure); + EXPECT_THROW(opset1::TopK(data, k, 0, "invalid_sort", "index"), ngraph::CheckFailure); } TEST(ReferenceTopKTestInvalid, topk_v1_invalid_k) { - const auto data = std::make_shared(element::f32, Shape{1, 2, 3}); - const auto k_non_scalar = op::v0::Constant::create(element::i64, Shape{2}, {1, 2}); - EXPECT_THROW(op::v1::TopK(data, k_non_scalar, 0, "max", "index"), ngraph::NodeValidationFailure); - const auto k_float = op::v0::Constant::create(element::f32, Shape{}, {1.0f}); - EXPECT_THROW(op::v1::TopK(data, k_float, 0, "max", "index"), ngraph::NodeValidationFailure); - const auto k_negative = op::v0::Constant::create(element::i8, Shape{}, {-1}); - EXPECT_THROW(op::v1::TopK(data, k_negative, 0, "max", "index"), ngraph::NodeValidationFailure); + const auto data = std::make_shared(element::f32, Shape{1, 2, 3}); + const auto k_non_scalar = opset1::Constant::create(element::i64, Shape{2}, {1, 2}); + EXPECT_THROW(opset1::TopK(data, k_non_scalar, 0, "max", "index"), ngraph::NodeValidationFailure); + const auto k_float = opset1::Constant::create(element::f32, Shape{}, {1.0f}); + EXPECT_THROW(opset1::TopK(data, k_float, 0, "max", "index"), ngraph::NodeValidationFailure); + const auto k_negative = opset1::Constant::create(element::i8, Shape{}, {-1}); + EXPECT_THROW(opset1::TopK(data, k_negative, 0, "max", "index"), ngraph::NodeValidationFailure); +} + + + + +class ReferenceTopKTestResnet50V3 : public ReferenceTopKTestResnet50 { +private: + static std::shared_ptr CreateFunction(const TopKParamsResnet50& params) { + const auto A = std::make_shared(params.A.type, + params.A.shape); + const auto B = std::make_shared(A, + opset1::Constant::create(element::i64, {}, {5}), + 1, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES); + const auto C = std::make_shared(A, + opset1::Constant::create(element::i64, {}, {1}), + 1, + opset1::TopK::Mode::MAX, + opset1::TopK::SortType::SORT_VALUES); + + const auto out5_value = B->output(0); + const auto out5_index = B->output(1); + const auto out1_value = C->output(0); + const auto out1_index = C->output(1); + const auto f = std::make_shared(OutputVector{out5_value, out5_index, out1_value, out1_index}, ParameterVector{A}); + return f; + } +}; + +TEST_P(ReferenceTopKTestResnet50V3, CompareWithRefs) { + Exec(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestResnet50V3, + testing::ValuesIn(generateCombinedParamsResnet50()), ReferenceTopKTestResnet50V3::getTestCaseName); + +class ReferenceTopKTestMaxMinSortV3 : public ReferenceTopKTestMaxMinSort { +private: + static std::shared_ptr CreateFunction(const TopKParams& params) { + const auto A = std::make_shared(params.A.type, + params.A.shape); + const auto k = opset1::Constant::create(params.k.type, + params.k.shape, + params.k.data.data()); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto f = std::make_shared(B->outputs(), ParameterVector{A}); + return f; + } +}; + +TEST_P(ReferenceTopKTestMaxMinSortV3, CompareWithRefs) { + Exec(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestMaxMinSortV3, + testing::ValuesIn(generateCombinedParamsMaxMinSort()), ReferenceTopKTestMaxMinSortV3::getTestCaseName); + +class ReferenceTopKTestBackendV3 : public ReferenceTopKTestBackend { +private: + static std::shared_ptr CreateFunction(const TopKParams& params) { + const auto A = std::make_shared(params.A.type, + params.A.shape); + const auto k = opset1::Constant::create(params.k.type, + params.k.shape, + params.k.data.data()); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto f = std::make_shared(B->outputs(), ParameterVector{A}); + return f; + } +}; + +TEST_P(ReferenceTopKTestBackendV3, CompareWithRefs) { + Exec(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestBackendV3, + testing::ValuesIn(generateCombinedParamsBackend()), ReferenceTopKTestBackendV3::getTestCaseName); + +class ReferenceTopKTest1dMaxMinV3 : public ReferenceTopKTest1dMaxMin { +private: + static std::shared_ptr CreateFunction(const TopKParams& params, size_t out_idx) { + const auto A = std::make_shared(params.A.type, + params.A.shape); + const auto k = opset1::Constant::create(params.k.type, + params.k.shape, + params.k.data.data()); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto f = std::make_shared(OutputVector{B->output(out_idx)}, ParameterVector{A}); + return f; + } +}; + +TEST_P(ReferenceTopKTest1dMaxMinV3, CompareWithRefs) { + Exec(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTest1dMaxMinV3, + testing::ValuesIn(generateCombinedParams1dMaxMin()), ReferenceTopKTest1dMaxMinV3::getTestCaseName); + +class ReferenceTopKTestInt64V3 : public ReferenceTopKTestInt64 { +private: + static std::shared_ptr CreateFunction(const TopKParams& params, size_t out_idx) { + const auto A = std::make_shared(params.A.type, + params.A.shape); + const auto k = opset1::Constant::create(params.k.type, + params.k.shape, + params.k.data.data()); + const auto B = std::make_shared(A, + k, + params.axis, + params.mode, + params.sort, + element::i64); + const auto f = std::make_shared(OutputVector{B->output(out_idx)}, ParameterVector{A}); + return f; + } +}; + +TEST_P(ReferenceTopKTestInt64V3, CompareWithRefs) { + Exec(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestInt64V3, + testing::ValuesIn(generateCombinedParamsInt64()), ReferenceTopKTestInt64V3::getTestCaseName); + +class ReferenceTopKTestSingleOutputV3 : public ReferenceTopKTestSingleOutput { +private: + static std::shared_ptr CreateFunction(const TopKParams& params) { + const auto A = std::make_shared(params.A.type, + params.A.shape); + const auto k = opset1::Constant::create(params.k.type, + params.k.shape, + params.k.data.data()); + const auto B = std::make_shared(A, k, params.axis, params.mode, params.sort); + const auto f = std::make_shared(OutputVector{B->output(1)}, ParameterVector{A}); + return f; + } +}; + +TEST_P(ReferenceTopKTestSingleOutputV3, CompareWithRefs) { + Exec(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_TopK_With_Hardcoded_Refs, ReferenceTopKTestSingleOutputV3, + testing::ValuesIn(generateCombinedParamsSingleOutput()), ReferenceTopKTestSingleOutputV3::getTestCaseName); + +TEST(ReferenceTopKTestInvalidV3, topk_v3_invalid_strings) { + const auto data = std::make_shared(element::f32, Shape{1, 2, 3}); + const auto k = opset1::Constant::create(element::i64, Shape{}, {1}); + EXPECT_THROW(opset3::TopK(data, k, 0, "max", "invalid_mode"), ngraph::CheckFailure); + EXPECT_THROW(opset3::TopK(data, k, 0, "invalid_sort", "index"), ngraph::CheckFailure); +} + +TEST(ReferenceTopKTestInvalidV3, topk_v3_invalid_k) { + const auto data = std::make_shared(element::f32, Shape{1, 2, 3}); + const auto k_non_scalar = opset1::Constant::create(element::i64, Shape{2}, {1, 2}); + EXPECT_THROW(opset3::TopK(data, k_non_scalar, 0, "max", "index"), ngraph::NodeValidationFailure); + const auto k_float = opset1::Constant::create(element::f32, Shape{}, {1.0f}); + EXPECT_THROW(opset3::TopK(data, k_float, 0, "max", "index"), ngraph::NodeValidationFailure); + const auto k_negative = opset1::Constant::create(element::i8, Shape{}, {-1}); + EXPECT_THROW(opset3::TopK(data, k_negative, 0, "max", "index"), ngraph::NodeValidationFailure); } } // namespace diff --git a/inference-engine/CMakeLists.txt b/inference-engine/CMakeLists.txt index 2e935e206d1..2a299e6cb4a 100644 --- a/inference-engine/CMakeLists.txt +++ b/inference-engine/CMakeLists.txt @@ -7,8 +7,3 @@ project(InferenceEngine) if(ENABLE_PYTHON) add_subdirectory(ie_bridges/python) endif() - -if(ENABLE_TESTS) - add_subdirectory(tests_deprecated) - add_subdirectory(tests) -endif() diff --git a/inference-engine/ie_bridges/python/wheel/.env.in b/inference-engine/ie_bridges/python/wheel/.env.in deleted file mode 100644 index 5dc313f6b1d..00000000000 --- a/inference-engine/ie_bridges/python/wheel/.env.in +++ /dev/null @@ -1,15 +0,0 @@ -WHEEL_PACKAGE_NAME=@WHEEL_PACKAGE_NAME@ -WHEEL_VERSION=@WHEEL_VERSION@ -WHEEL_BUILD=@WHEEL_BUILD@ -WHEEL_LICENCE_TYPE=@WHEEL_LICENCE_TYPE@ -WHEEL_AUTHOR=@WHEEL_AUTHOR@ -WHEEL_AUTHOR_EMAIL=@WHEEL_AUTHOR_EMAIL@ -WHEEL_DESC=@WHEEL_DESC@ -WHEEL_LICENSE=@WHEEL_LICENSE@ -WHEEL_REQUIREMENTS=@WHEEL_REQUIREMENTS@ -WHEEL_OVERVIEW=@WHEEL_OVERVIEW@ - -CMAKE_BUILD_DIR=@CMAKE_BINARY_DIR@ -OV_RUNTIME_LIBS_DIR=@IE_CPACK_RUNTIME_PATH@ -TBB_LIBS_DIR=@TBB_LIBS_DIR@ -PY_PACKAGES_DIR=@PY_PACKAGES_DIR@ diff --git a/inference-engine/ie_bridges/python/wheel/CMakeLists.txt b/inference-engine/ie_bridges/python/wheel/CMakeLists.txt index 53d8207c347..7bb7bc2ab79 100644 --- a/inference-engine/ie_bridges/python/wheel/CMakeLists.txt +++ b/inference-engine/ie_bridges/python/wheel/CMakeLists.txt @@ -1,40 +1,14 @@ # Copyright (C) 2018-2021 Intel Corporation # SPDX-License-Identifier: Apache-2.0 # - -set(WHEEL_PACKAGE_NAME "openvino" CACHE STRING "Name of the package") -set(WHEEL_LICENCE_TYPE "OSI Approved :: Apache Software License" CACHE STRING "License type for the package") -set(WHEEL_AUTHOR "Intel Corporation" CACHE STRING "Package author’s name") -set(WHEEL_AUTHOR_EMAIL "openvino_pushbot@intel.com" CACHE STRING "Email address of the package author") -set(WHEEL_DESC "Inference Engine Python* API" CACHE STRING "Short, summary description of the package") -set(WHEEL_URL "https://docs.openvinotoolkit.org/latest/index.html" CACHE STRING "Home page url") -set(WHEEL_DOWNLOAD_URL "https://github.com/openvinotoolkit/openvino/tags" CACHE STRING "Download page url") set(WHEEL_VERSION "${IE_VERSION}" CACHE STRING "Version of this release" FORCE) set(WHEEL_BUILD "${IE_VERSION_BUILD}" CACHE STRING "Build number of this release" FORCE) -set(WHEEL_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE" CACHE STRING "Wheel license file") -set(WHEEL_REQUIREMENTS "${CMAKE_CURRENT_SOURCE_DIR}/meta/openvino.requirements.txt" CACHE STRING "Wheel requirements.txt file") -set(WHEEL_OVERVIEW "${CMAKE_CURRENT_SOURCE_DIR}/meta/pypi_overview.md" CACHE STRING "Detailed description") - -set(SETUP_PY "${CMAKE_CURRENT_SOURCE_DIR}/setup.py") -set(SETUP_ENV "${CMAKE_CURRENT_SOURCE_DIR}/.env.in") -set(SETUP_ENV_OUT "${CMAKE_CURRENT_SOURCE_DIR}/.env") - set(PY_PACKAGES_DIR ${PYTHON_BRIDGE_CPACK_PATH}/${PYTHON_VERSION}) set(TBB_LIBS_DIR runtime/3rdparty/tbb/lib) - -if(APPLE) - set(WHEEL_PLATFORM macosx_10_15_x86_64) -elseif(UNIX) - set(WHEEL_PLATFORM manylinux2014_x86_64) -elseif(WIN32) - set(WHEEL_PLATFORM win_amd64) +if(WIN32) set(TBB_LIBS_DIR runtime/3rdparty/tbb/bin) -else() - message(FATAL_ERROR "This platform is not supported") endif() -configure_file(${SETUP_ENV} ${SETUP_ENV_OUT} @ONLY) - if(LINUX) find_host_program(patchelf_program NAMES patchelf @@ -55,21 +29,30 @@ endforeach() execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.bdist_wheel ; print(f'{wheel.bdist_wheel.get_abi_tag()}')" OUTPUT_VARIABLE PYTHON_ABI) execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{tags.interpreter_name()}{tags.interpreter_version()}')" OUTPUT_VARIABLE INTERPRETER) +execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{next(tags._platform_tags())}')" OUTPUT_VARIABLE WHEEL_PLATFORM) string(STRIP ${PYTHON_ABI} PYTHON_ABI) string(STRIP ${INTERPRETER} INTERPRETER) +string(STRIP ${WHEEL_PLATFORM} WHEEL_PLATFORM) set(openvino_wheel_name "openvino-${WHEEL_VERSION}-${WHEEL_BUILD}-${INTERPRETER}-${PYTHON_ABI}-${WHEEL_PLATFORM}.whl") set(openvino_wheels_output_dir "${CMAKE_BINARY_DIR}/wheels") set(openvino_wheel_path "${openvino_wheels_output_dir}/${openvino_wheel_name}") add_custom_command(OUTPUT ${openvino_wheel_path} + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/licensing" "${CMAKE_BINARY_DIR}/licensing" COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/site-packages" - COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} clean bdist_wheel + COMMAND ${CMAKE_COMMAND} -E env WHEEL_VERSION=${WHEEL_VERSION} + WHEEL_BUILD=${WHEEL_BUILD} + CMAKE_BUILD_DIR=${CMAKE_BINARY_DIR} + OV_RUNTIME_LIBS_DIR=${IE_CPACK_RUNTIME_PATH} + TBB_LIBS_DIR=${TBB_LIBS_DIR} + PY_PACKAGES_DIR=${PY_PACKAGES_DIR} + ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/setup.py" clean bdist_wheel --dist-dir ${openvino_wheels_output_dir} --build=${WHEEL_BUILD} --plat-name=${WHEEL_PLATFORM} - # COMMAND ${CMAKE_COMMAND} -E remove ${SETUP_ENV_OUT} - DEPENDS ${openvino_wheel_deps} ${SETUP_ENV_OUT} + DEPENDS ${openvino_wheel_deps} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" COMMENT "Building Python wheel ${openvino_wheel_name}" VERBATIM) diff --git a/inference-engine/ie_bridges/python/wheel/meta/openvino-dev.requirements.txt b/inference-engine/ie_bridges/python/wheel/meta/openvino-dev.requirements.txt deleted file mode 100644 index ccc569a0194..00000000000 --- a/inference-engine/ie_bridges/python/wheel/meta/openvino-dev.requirements.txt +++ /dev/null @@ -1,28 +0,0 @@ -defusedxml>=0.7.1 -scipy~=1.5.4 -jstyleson~=0.0.2 -numpy>=1.16.6,<1.20 -addict>=2.4.0 -pandas~=1.1.5 -hyperopt~=0.1.2 -networkx~=2.5 -tqdm>=4.54.1 -texttable~=1.6.3 -py-cpuinfo>=7.0.0 -PyYAML>=5.4.1 -pillow>=8.1.2 -scikit-image>=0.17.2 -scikit-learn>=0.24.1 -yamlloader>=0.5 -shapely>=1.7.1 -nibabel>=3.2.1 -pydicom>=2.1.2 -sentencepiece>=0.1.95 -tokenizers>=0.10.1 -editdistance>=0.5.3 -parasail>=1.2.4 -fast-ctc-decode>=0.2.5 -rawpy>=0.16.0 -nltk>=3.5 -opencv-python==4.5.* -progress>=1.5 diff --git a/inference-engine/ie_bridges/python/wheel/meta/openvino-dev.setup.cfg b/inference-engine/ie_bridges/python/wheel/meta/openvino-dev.setup.cfg deleted file mode 100644 index d6789c4a084..00000000000 --- a/inference-engine/ie_bridges/python/wheel/meta/openvino-dev.setup.cfg +++ /dev/null @@ -1,22 +0,0 @@ -[options] -py_modules = - mo - mo_tf - mo_caffe - mo_mxnet - mo_onnx - mo_kaldi - -[options.package_data] - * = * - -[options.entry_points] -console_scripts = - -[metadata] -license_files = - readme* - *LICENSE* - *license* - *third-party-programs* - *EULA* diff --git a/inference-engine/ie_bridges/python/wheel/meta/openvino.requirements.txt b/inference-engine/ie_bridges/python/wheel/meta/openvino.requirements.txt deleted file mode 100644 index 63012dd1739..00000000000 --- a/inference-engine/ie_bridges/python/wheel/meta/openvino.requirements.txt +++ /dev/null @@ -1 +0,0 @@ -numpy>=1.16.6,<1.20 diff --git a/inference-engine/ie_bridges/python/wheel/meta/pypi_overview.md b/inference-engine/ie_bridges/python/wheel/meta/pypi_overview.md deleted file mode 100644 index 418a04bc16a..00000000000 --- a/inference-engine/ie_bridges/python/wheel/meta/pypi_overview.md +++ /dev/null @@ -1,32 +0,0 @@ -## OpenVINO™ Toolkit - -OpenVINO™ toolkit quickly deploys applications and solutions that emulate human vision. Based on Convolutional Neural Networks (CNNs), the toolkit extends computer vision (CV) workloads across Intel® hardware, maximizing performance. The OpenVINO™ toolkit includes the Deep Learning Deployment Toolkit (DLDT). - -OpenVINO™ toolkit: - -- Enables CNN-based deep learning inference on the edge -- Supports heterogeneous execution across an Intel® CPU, Intel® Integrated Graphics, Intel® Neural Compute Stick 2, and Intel® Vision Accelerator Design with Intel® Movidius™ VPUs -- Speeds time-to-market via an easy-to-use library of computer vision functions and pre-optimized kernels -- Includes optimized calls for computer vision standards, including OpenCV\* and OpenCL™ - -Operating Systems: -- Ubuntu* 18.04 long-term support (LTS), 64-bit -- Windows* 10, 64-bit -- macOS* 10.15, 64-bit - -## Install the Runtime Package Using the PyPI Repository -1. Set up and update pip to the highest version: - ```sh - python3 -m pip install --upgrade pip - ``` -2. Install the Intel® distribution of OpenVINO™ toolkit: - ```sh - pip install openvino - ``` - -3. Verify that the package is installed: - ```sh - python3 -c "from openvino.inference_engine import IECore" - ``` - -Now you are ready to develop and run your application. \ No newline at end of file diff --git a/inference-engine/ie_bridges/python/wheel/requirements-dev.txt b/inference-engine/ie_bridges/python/wheel/requirements-dev.txt index 8c4ce47c35f..b7574b392d2 100644 --- a/inference-engine/ie_bridges/python/wheel/requirements-dev.txt +++ b/inference-engine/ie_bridges/python/wheel/requirements-dev.txt @@ -1,3 +1,3 @@ setuptools>=53.0.0 wheel>=0.36.2 -python-decouple>=3.4 + diff --git a/inference-engine/ie_bridges/python/wheel/setup.cfg b/inference-engine/ie_bridges/python/wheel/setup.cfg index abb1790b67f..c6893c93c42 100644 --- a/inference-engine/ie_bridges/python/wheel/setup.cfg +++ b/inference-engine/ie_bridges/python/wheel/setup.cfg @@ -1,7 +1,11 @@ [metadata] license_files = - readme* - *LICENSE* - *license* - *third-party-programs* - *EULA* + readme* + *LICENSE* + *license* + *third-party-programs* + ../../../../licensing/runtime-third-party-programs.txt + ../../../../licensing/tbb_third-party-programs.txt + ../../../../licensing/onednn_third-party-programs.txt + ../../../../LICENSE + diff --git a/inference-engine/ie_bridges/python/wheel/setup.py b/inference-engine/ie_bridges/python/wheel/setup.py index 517dce7560e..eb8d573dfba 100644 --- a/inference-engine/ie_bridges/python/wheel/setup.py +++ b/inference-engine/ie_bridges/python/wheel/setup.py @@ -21,7 +21,6 @@ from setuptools import setup, find_namespace_packages, Extension from setuptools.command.build_ext import build_ext from setuptools.command.build_clib import build_clib from setuptools.command.install import install -from decouple import config WHEEL_LIBS_INSTALL_DIR = os.path.join('openvino', 'libs') WHEEL_LIBS_PACKAGE = 'openvino.libs' @@ -41,10 +40,11 @@ elif machine == 'aarch64': ARCH = 'arm64' # The following variables can be defined in environment or .env file -CMAKE_BUILD_DIR = config('CMAKE_BUILD_DIR', '.') -OV_RUNTIME_LIBS_DIR = config('OV_RUNTIME_LIBS_DIR', f'runtime/{LIBS_DIR}/{ARCH}/{CONFIG}') -TBB_LIBS_DIR = config('TBB_LIBS_DIR', f'runtime/3rdparty/tbb/{LIBS_DIR}') -PY_PACKAGES_DIR = config('PY_PACKAGES_DIR', f'python/{PYTHON_VERSION}') +SCRIPT_DIR = Path(__file__).resolve().parents[0] +CMAKE_BUILD_DIR = os.getenv('CMAKE_BUILD_DIR', '.') +OV_RUNTIME_LIBS_DIR = os.getenv('OV_RUNTIME_LIBS_DIR', f'runtime/{LIBS_DIR}/{ARCH}/{CONFIG}') +TBB_LIBS_DIR = os.getenv('TBB_LIBS_DIR', f'runtime/3rdparty/tbb/{LIBS_DIR}') +PY_PACKAGES_DIR = os.getenv('PY_PACKAGES_DIR', f'python/{PYTHON_VERSION}') LIBS_RPATH = '$ORIGIN' if sys.platform == 'linux' else '@loader_path' LIB_INSTALL_CFG = { @@ -428,28 +428,28 @@ if not any(pl in sys.platform for pl in platforms): sys.exit(f'Unsupported platform: {sys.platform}, expected: linux, win32, darwin') # copy license file into the build directory -package_license = config('WHEEL_LICENSE', '') +package_license = os.getenv('WHEEL_LICENSE', SCRIPT_DIR.parents[3] / 'LICENSE') if os.path.exists(package_license): copyfile(package_license, 'LICENSE') packages = find_namespace_packages(get_package_dir(PY_INSTALL_CFG)) package_data: typing.Dict[str, list] = {} -pkg_name = config('WHEEL_PACKAGE_NAME', 'openvino') +pkg_name = os.getenv('WHEEL_PACKAGE_NAME', 'openvino') ext_modules = find_prebuilt_extensions(get_dir_list(PY_INSTALL_CFG)) if pkg_name == 'openvino' else [] setup( - version=config('WHEEL_VERSION', '0.0.0'), - build=config('WHEEL_BUILD', '000'), - author_email=config('WHEEL_AUTHOR_EMAIL', 'openvino_pushbot@intel.com'), + version=os.getenv('WHEEL_VERSION', '0.0.0'), + build=os.getenv('WHEEL_BUILD', '000'), + author_email=os.getenv('WHEEL_AUTHOR_EMAIL', 'openvino_pushbot@intel.com'), name=pkg_name, - license=config('WHEEL_LICENCE_TYPE', 'OSI Approved :: Apache Software License'), - author=config('WHEEL_AUTHOR', 'Intel Corporation'), - description=config('WHEEL_DESC', 'Inference Engine Python* API'), - install_requires=get_dependencies(config('WHEEL_REQUIREMENTS', 'meta/openvino.requirements.txt')), - long_description=get_description(config('WHEEL_OVERVIEW', 'meta/pypi_overview.md')), + license=os.getenv('WHEEL_LICENCE_TYPE', 'OSI Approved :: Apache Software License'), + author=os.getenv('WHEEL_AUTHOR', 'Intel(R) Corporation'), + description=os.getenv('WHEEL_DESC', 'OpenVINO(TM) Runtime'), + install_requires=get_dependencies(os.getenv('WHEEL_REQUIREMENTS', SCRIPT_DIR.parents[0] / 'requirements.txt')), + long_description=get_description(os.getenv('WHEEL_OVERVIEW', SCRIPT_DIR.parents[3] / 'docs/install_guides/pypi-openvino-rt.md')), long_description_content_type='text/markdown', - download_url=config('WHEEL_DOWNLOAD_URL', 'https://github.com/openvinotoolkit/openvino/tags'), - url=config('WHEEL_URL', 'https://docs.openvinotoolkit.org/latest/index.html'), + download_url=os.getenv('WHEEL_DOWNLOAD_URL', 'https://github.com/openvinotoolkit/openvino/tags'), + url=os.getenv('WHEEL_URL', 'https://docs.openvinotoolkit.org/latest/index.html'), cmdclass={ 'build': CustomBuild, 'install': CustomInstall, diff --git a/inference-engine/src/mkldnn_plugin/cpu_shape.h b/inference-engine/src/mkldnn_plugin/cpu_shape.h index 0972ebd227f..9fbc0a55616 100644 --- a/inference-engine/src/mkldnn_plugin/cpu_shape.h +++ b/inference-engine/src/mkldnn_plugin/cpu_shape.h @@ -25,6 +25,8 @@ public: type = shape.is_static() ? ShapeType::Static : ShapeType::Dynamic; initDims(); + + hasZeroDimensions = std::any_of(dims.begin(), dims.end(), [](size_t dim) { return dim == 0; } ); } explicit Shape(const InferenceEngine::SizeVector& shape) { @@ -33,6 +35,8 @@ public: type = ShapeType::Static; initDims(); + + hasZeroDimensions = std::any_of(dims.begin(), dims.end(), [](size_t dim) { return dim == 0; } ); } /** @@ -106,6 +110,10 @@ public: return type == ShapeType::Dynamic; } + bool hasZeroDims() const { + return hasZeroDimensions; + } + size_t getRank() const { return minDims.size(); } @@ -169,6 +177,8 @@ private: Dynamic } type {ShapeType::Static}; + bool hasZeroDimensions = false; + VectorDims minDims; VectorDims maxDims; VectorDims dims; diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.cpp b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.cpp index 4718151ea84..dd8e3597598 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.cpp +++ b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.cpp @@ -16,7 +16,8 @@ CpuBlockedMemoryDesc::CpuBlockedMemoryDesc(InferenceEngine::Precision prc, const offsetPadding = 0; offsetPaddingToData.resize(dims.size(), 0); strides.resize(order.size()); - strides[strides.size() - 1] = 1; + // for empty tensor case we fill all strides with 0 values + strides[strides.size() - 1] = shape.hasZeroDims() ? 0 : 1; for (size_t i = 2; i <= order.size(); i++) { strides[strides.size() - i] = strides[strides.size() - (i - 1)] * blockedDims[blockedDims.size() - (i - 1)]; } @@ -33,6 +34,15 @@ CpuBlockedMemoryDesc::CpuBlockedMemoryDesc(InferenceEngine::Precision prc, const IE_THROW() << "CpuBlockedMemoryDesc doesn't support undefined blockedDims."; } + if (shape.hasZeroDims()) { + const auto& dims = shape.getDims(); + for (size_t i = 0; i < shape.getRank(); i++) { + if (dims[order[i]] == 0 && !dimsEqualWeak(blockedDims[i], 0)) { + IE_THROW() << "Can't create CpuBlockedMemoryDesc. Mistmatch zero dims in dims and blocked dims"; + } + } + } + this->order = order; this->blockedDims = blockedDims; this->offsetPadding = offsetPadding; @@ -44,7 +54,9 @@ CpuBlockedMemoryDesc::CpuBlockedMemoryDesc(InferenceEngine::Precision prc, const } if (strides.empty() && !order.empty()) { - if (std::any_of(this->blockedDims.begin(), this->blockedDims.end(), [](size_t val) { return val == Shape::UNDEFINED_DIM; })) { + if (shape.hasZeroDims()) { + this->strides.resize(order.size(), 0); + } else if (std::any_of(this->blockedDims.begin(), this->blockedDims.end(), [](size_t val) { return val == Shape::UNDEFINED_DIM; })) { this->strides.resize(order.size(), Shape::UNDEFINED_DIM); } else { this->strides.resize(order.size()); @@ -54,6 +66,9 @@ CpuBlockedMemoryDesc::CpuBlockedMemoryDesc(InferenceEngine::Precision prc, const } } } else { + if (shape.hasZeroDims() && std::any_of(strides.begin(), strides.end(), [](size_t stride) { return stride != 0; } )) { + IE_THROW() << "Can't create CpuBlockedMemoryDesc with zero dim, but with non zero strides"; + } this->strides = strides; } @@ -92,11 +107,16 @@ bool CpuBlockedMemoryDesc::isCompatible(const DnnlBlockedMemoryDesc &rhs) const return rhs.isCompatible(*this); } +bool CpuBlockedMemoryDesc::canComputeMemSizeZeroDims() const { + return getShape().hasZeroDims() && getOffsetPadding() != Shape::UNDEFINED_DIM; +} + size_t CpuBlockedMemoryDesc::getCurrentMemSizeImp() const { int64_t e_size = getOffsetPadding() + 1; // size in bytes (from begin of data to last element) - for (int j = 0; j < getBlockDims().size(); j++) - e_size += (getBlockDims()[j] - 1) * getStrides()[j]; - + if (!getShape().hasZeroDims()) { + for (int j = 0; j < getBlockDims().size(); j++) + e_size += (getBlockDims()[j] - 1) * getStrides()[j]; + } e_size *= getPrecision() == InferenceEngine::Precision::BIN ? 1 : getPrecision().size(); @@ -104,14 +124,14 @@ size_t CpuBlockedMemoryDesc::getCurrentMemSizeImp() const { } size_t CpuBlockedMemoryDesc::getMaxMemSize() const { - if (shape.isStatic()) { + if (shape.isStatic() || shape.hasZeroDims()) { return getCurrentMemSize(); } - auto& maxDims = shape.getMaxDims(); + const auto& maxDims = shape.getMaxDims(); if (std::any_of(maxDims.begin(), maxDims.end(), [](size_t x){ return Shape::UNDEFINED_DIM == x || // WA: for some nodes ngraph compute upper bound depending on precision max value - std::numeric_limits::max() == x; })) { + x >= std::numeric_limits::max(); })) { return UNDEFINED_SIZE; } @@ -270,15 +290,23 @@ bool CpuBlockedMemoryDesc::blocksExtended() const { } size_t CpuBlockedMemoryDesc::getPaddedElementsCount() const { - if (std::any_of(blockedDims.begin(), blockedDims.end(), [](Dim dim) { return dim == Shape::UNDEFINED_DIM; })) + if (getShape().hasZeroDims()) { + return 0; + } + if (std::any_of(blockedDims.begin(), blockedDims.end(), [](Dim dim) { return dim == Shape::UNDEFINED_DIM; })) { IE_THROW() << "Can't compute padded elements count for non undefined blocked dims"; + } return std::accumulate(blockedDims.begin(), blockedDims.end(), size_t{1}, std::multiplies()); } MemoryDescPtr CpuBlockedMemoryDesc::cloneWithUndefStridesAndOffset() const { const auto orderSize = getOrder().size(); - return std::make_shared(getPrecision(), getShape(), getBlockDims(), getOrder(), Shape::UNDEFINED_DIM, - VectorDims(orderSize, 0), VectorDims(orderSize, Shape::UNDEFINED_DIM)); + CpuBlockedMemoryDescPtr newDesc = std::make_shared(*this); + newDesc->strides = VectorDims(orderSize, Shape::UNDEFINED_DIM); + newDesc->offsetPadding = Shape::UNDEFINED_DIM; + newDesc->offsetPaddingToData = VectorDims(orderSize, 0); + newDesc->status = descStatus::Undefined; + return newDesc; } MemoryDescPtr CpuBlockedMemoryDesc::cloneWithDefaultStridesAndOffset() const { diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.h b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.h index 6f8cb9b9e45..28515ff03b4 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.h +++ b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_blocked_memory_desc.h @@ -84,6 +84,7 @@ public: private: size_t getElementOffset(size_t elemNumber) const override; + bool canComputeMemSizeZeroDims() const override; size_t getCurrentMemSizeImp() const override; size_t getOffset(const InferenceEngine::SizeVector& v) const; bool isPlainFormat() const; diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc.h b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc.h index 660a65117fb..ff79c8e4426 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc.h +++ b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc.h @@ -93,7 +93,7 @@ public: */ size_t getCurrentMemSize() const { size_t retVal = UNDEFINED_SIZE; - if (isDefined()) { + if (canComputeMemSize()) { retVal = getCurrentMemSizeImp(); } return retVal; @@ -140,8 +140,13 @@ protected: // Get offset to the n'th element. Returns physical index of the element by the logical one considering padding, layout, blocking etc. virtual size_t getElementOffset(size_t elemNumber) const = 0; + virtual bool canComputeMemSizeZeroDims() const = 0; virtual bool isDefinedImp() const = 0; + bool canComputeMemSize() const { + return isDefined() || canComputeMemSizeZeroDims(); + } + virtual MemoryDescPtr cloneWithNewDimsImp(const VectorDims& dims) const = 0; MemoryDescType type; diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc_utils.cpp b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc_utils.cpp index 38dd1220e29..ee38482a9cc 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc_utils.cpp +++ b/inference-engine/src/mkldnn_plugin/memory_desc/cpu_memory_desc_utils.cpp @@ -48,17 +48,37 @@ DnnlBlockedMemoryDesc MemoryDescUtils::convertToDnnlBlockedMemoryDesc(const Memo CpuBlockedMemoryDesc MemoryDescUtils::convertToCpuBlockedMemoryDesc(const InferenceEngine::TensorDesc& desc) { if (desc.getLayout() == InferenceEngine::Layout::ANY) IE_THROW() << "Cannot convert InferenceEngine::TensorDesc with ANY layout to CpuBlockedMemoryDesc"; - const auto &blkDesc = desc.getBlockingDesc(); - return CpuBlockedMemoryDesc(desc.getPrecision(), Shape(desc.getDims()), blkDesc.getBlockDims(), blkDesc.getOrder(), blkDesc.getOffsetPadding(), - blkDesc.getOffsetPaddingToData(), blkDesc.getStrides()); + + const auto& blkDesc = desc.getBlockingDesc(); + const auto& dims = desc.getDims(); + + auto strides = blkDesc.getStrides(); + // for empty tensor case InferenceEngine::TensorDesc fill strides with non zero values before first 0 dims + // i.e. dims[1, 0, 2, 3] -> strides [0, 6, 3, 1] + if (std::any_of(dims.begin(), dims.end(), [](size_t dim){ return dim == 0; })) { + std::fill(strides.begin(), strides.end(), 0); + } + + return CpuBlockedMemoryDesc(desc.getPrecision(), Shape(dims), blkDesc.getBlockDims(), blkDesc.getOrder(), blkDesc.getOffsetPadding(), + blkDesc.getOffsetPaddingToData(), strides); } DnnlBlockedMemoryDesc MemoryDescUtils::convertToDnnlBlockedMemoryDesc(const InferenceEngine::TensorDesc& desc) { - const auto &blkDesc = desc.getBlockingDesc(); if (desc.getLayout() == InferenceEngine::Layout::ANY) IE_THROW() << "Cannot convert InferenceEngine::TensorDesc with ANY layout to DnnlBlockedMemoryDesc"; + + const auto& blkDesc = desc.getBlockingDesc(); + const auto& dims = desc.getDims(); + + auto strides = blkDesc.getStrides(); + // for empty tensor case InferenceEngine::TensorDesc fill strides with non zero values before first 0 dims + // i.e. dims[1, 0, 2, 3] -> strides [0, 6, 3, 1] + if (std::any_of(dims.begin(), dims.end(), [](size_t dim){ return dim == 0; })) { + std::fill(strides.begin(), strides.end(), 0); + } + return DnnlBlockedMemoryDesc(desc.getPrecision(), Shape(desc.getDims()), blkDesc.getBlockDims(), blkDesc.getOrder(), blkDesc.getOffsetPadding(), - blkDesc.getOffsetPaddingToData(), blkDesc.getStrides()); + blkDesc.getOffsetPaddingToData(), strides); } BlockedMemoryDescPtr MemoryDescUtils::convertToBlockedMemoryDesc(const MemoryDescPtr &desc) { @@ -80,9 +100,16 @@ InferenceEngine::Blob::Ptr MemoryDescUtils::interpretAsBlob(const MKLDNNMemory & InferenceEngine::TensorDesc MemoryDescUtils::convertToTensorDesc(const MemoryDesc& desc) { if (auto blockingDesc = dynamic_cast(&desc)) { - return InferenceEngine::TensorDesc(blockingDesc->getPrecision(), blockingDesc->getShape().getStaticDims(), - {blockingDesc->getBlockDims(), blockingDesc->getOrder(), blockingDesc->getOffsetPadding(), - blockingDesc->getOffsetPaddingToData(), blockingDesc->getStrides()}); + InferenceEngine::BlockingDesc blkDesc = desc.getShape().hasZeroDims() ? InferenceEngine::BlockingDesc(blockingDesc->getBlockDims(), + blockingDesc->getOrder(), + blockingDesc->getOffsetPadding(), + blockingDesc->getOffsetPaddingToData()) : + InferenceEngine::BlockingDesc(blockingDesc->getBlockDims(), + blockingDesc->getOrder(), + blockingDesc->getOffsetPadding(), + blockingDesc->getOffsetPaddingToData(), + blockingDesc->getStrides()); + return InferenceEngine::TensorDesc(blockingDesc->getPrecision(), blockingDesc->getShape().getStaticDims(), blkDesc); } else { IE_THROW() << "Cannot convert MemoryDesc to InferenceEngine::TensorDesc"; } diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.cpp b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.cpp index f4eed00661a..4b1efda623a 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.cpp +++ b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.cpp @@ -15,12 +15,17 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(InferenceEngine::Precision prc, con const auto &dims = shape.getDims(); if (!strides.empty()) { // custom strides + if (shape.hasZeroDims() && std::any_of(strides.begin(), strides.end(), [](size_t stride) { return stride != 0; } )) { + IE_THROW() << "Can't create DnnlBlockedMemoryDesc with zero dim, but with non zero strides"; + } desc = {MKLDNNExtensionUtils::convertToDnnlDims(dims), MKLDNNExtensionUtils::IEPrecisionToDataType(prc), MKLDNNExtensionUtils::convertToDnnlDims(strides)}; } else { mkldnn::memory::dims plain_strides; - if (std::any_of(dims.begin(), dims.end(), [](size_t val) { return val == Shape::UNDEFINED_DIM; })) { + if (shape.hasZeroDims()) { + plain_strides.resize(ndims, 0); + } else if (std::any_of(dims.begin(), dims.end(), [](size_t val) { return val == Shape::UNDEFINED_DIM; })) { plain_strides.resize(ndims, DNNL_RUNTIME_DIM_VAL); } else { plain_strides.resize(ndims, 1); @@ -58,8 +63,8 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(InferenceEngine::Precision prc, con * Limitation of conversion first N elements of order should be permutation of [0,1,2 ... N] */ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(InferenceEngine::Precision prc, const Shape& shape, const VectorDims& blockedDims, - const VectorDims& order, size_t offsetPadding, const VectorDims& offsetPaddingToData, - const VectorDims& strides) : MemoryDesc(shape, DnnlBlocked) { + const VectorDims& order, size_t offsetPadding, const VectorDims& offsetPaddingToData, + const VectorDims& strides) : MemoryDesc(shape, DnnlBlocked) { using namespace mkldnn; // scalar case if (shape.getRank() == 0) { @@ -90,8 +95,8 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(InferenceEngine::Precision prc, con IE_THROW() << "DnnlBlockedMemoryDesc doesn't support undefined order."; } - if (std::any_of(blockedDims.begin() + shape.getRank(), blockedDims.end(), [](size_t val) { return val == Shape::UNDEFINED_DIM; })) { - IE_THROW() << "DnnlBlockedMemoryDesc doesn't support undefined blockedDims."; + if (std::any_of(blockedDims.begin() + shape.getRank(), blockedDims.end(), [](size_t val) { return val == Shape::UNDEFINED_DIM || val == 0; })) { + IE_THROW() << "DnnlBlockedMemoryDesc doesn't support undefined or zero blockedDims."; } auto dims = MKLDNNExtensionUtils::convertToDnnlDims(shape.getDims()); @@ -106,7 +111,12 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(InferenceEngine::Precision prc, con size_t inner_ndims = order.size() - dims.size(); + const bool emptyDesc = shape.hasZeroDims(); if (!strides.empty()) { + if (emptyDesc && std::any_of(strides.begin(), strides.end(), [](size_t dim) { return dim != 0; } )) { + IE_THROW() << "Can't create DnnlBlockedMemoryDesc with zero dim, but with non zero strides"; + } + bool is_descending_strides = true; for (int i = 1; i < strides.size(); i++) { is_descending_strides &= (strides[i - 1] >= strides[i]); @@ -118,7 +128,7 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(InferenceEngine::Precision prc, con IE_THROW() << "Can not construct DnnlBlockedMemoryDesc from strides: " << vec2str(strides); } - if (!strides.empty() && std::none_of(strides.begin(), strides.end(), [](size_t x) { return Shape::UNDEFINED_DIM == x; })) { + if (!strides.empty() && !emptyDesc && std::none_of(strides.begin(), strides.end(), [](size_t x) { return Shape::UNDEFINED_DIM == x; })) { bool inner_block_are_dense = one_of(strides.back(), 0, 1); // stride 1 - is dense case, 0 - broad casted for (int i = outer_ndims; i < strides.size() - 1; i++) { inner_block_are_dense &= (strides[i] == strides[i + 1] * blockedDims[i + 1]); @@ -203,6 +213,11 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(const Shape& shape, mkldnn::memory: order.swap(perm); order.insert(order.end(), inner_idxs.begin(), inner_idxs.end()); + if (shape.hasZeroDims()) { + auto& blk = desc.data.format_desc.blocking; + std::fill(std::begin(blk.strides), std::begin(blk.strides) + desc.data.ndims, 0); + } + initBlockedParams(); } @@ -296,6 +311,12 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(const mkldnn::memory::desc& mdesc) IE_THROW(Unexpected) << "Can't create DnnlBlockedMemoryDesc from not blocking desc"; order = extractOrder(desc); + + if (getShape().hasZeroDims()) { + auto& blk = desc.data.format_desc.blocking; + std::fill(std::begin(blk.strides), std::begin(blk.strides) + desc.data.ndims, 0); + } + initBlockedParams(); } @@ -368,6 +389,7 @@ bool DnnlBlockedMemoryDesc::isTailCFormat() const { static mkldnn::memory::desc cloneDescWithNewDims(const mkldnn::memory::desc& desc, const VectorDims& dims, const VectorDims& order) { using namespace dnnl::impl::utils; auto mklDims = MKLDNNExtensionUtils::convertToDnnlDims(dims); + const auto offsetPadding = desc.data.offset0; mkldnn::memory::desc newMklDesc = desc; array_copy(newMklDesc.data.dims, mklDims.data(), mklDims.size()); std::vector perm(order.begin(), order.begin() + mklDims.size()); @@ -379,6 +401,9 @@ static mkldnn::memory::desc cloneDescWithNewDims(const mkldnn::memory::desc& des if (retCode != dnnl::impl::status::success) { IE_THROW() << "Can not clone DnnlBlockedMemoryDesc with dims: " << MemoryDescUtils::dims2str(dims); } + // dnnl::impl::fill_blocked always set offset0 to 0 + // so we need to restore actual value + newMklDesc.data.offset0 = offsetPadding; return newMklDesc; } @@ -476,14 +501,14 @@ bool DnnlBlockedMemoryDesc::isSame(mkldnn::memory::format_tag fmt) const { } size_t DnnlBlockedMemoryDesc::getMaxMemSize() const { - if (shape.isStatic()) { + if (shape.isStatic() || shape.hasZeroDims()) { return getCurrentMemSize(); } - auto& maxDims = shape.getMaxDims(); + const auto& maxDims = shape.getMaxDims(); if (std::any_of(maxDims.begin(), maxDims.end(), [](size_t x){ return Shape::UNDEFINED_DIM == x || // WA: for some nodes ngraph compute upper bound depending on precision max value - std::numeric_limits::max() == x; })) { + x >= std::numeric_limits::max(); })) { return UNDEFINED_SIZE; } @@ -492,6 +517,13 @@ size_t DnnlBlockedMemoryDesc::getMaxMemSize() const { } size_t DnnlBlockedMemoryDesc::getPaddedElementsCount() const { + if (getShape().hasZeroDims()) { + return 0; + } + if (std::any_of(std::begin(desc.data.padded_dims), std::begin(desc.data.padded_dims) + desc.data.ndims, + [](dnnl_dim_t dim) { return dim == DNNL_RUNTIME_DIM_VAL; })) { + IE_THROW() << "Can't compute padded elements count for non undefined blocked dims"; + } return std::accumulate(std::begin(desc.data.padded_dims), std::begin(desc.data.padded_dims) + desc.data.ndims, size_t{1}, std::multiplies()); } @@ -548,7 +580,7 @@ void DnnlBlockedMemoryDesc::initStrides() { const size_t total_ndims = outer_ndims + inner_ndims; // strides of inner dims. In case of 4i16o4i will be {64, 4, 1} - VectorDims inner_strides(inner_ndims, 1); + VectorDims inner_strides(inner_ndims, getShape().hasZeroDims() ? 0 : 1); for (size_t i = 1; i < blk_desc.inner_nblks; i++) { inner_strides[blk_desc.inner_nblks - 1 - i] = inner_strides[blk_desc.inner_nblks - i] * blk_desc.inner_blks[blk_desc.inner_nblks - i]; } @@ -600,7 +632,9 @@ void DnnlBlockedMemoryDesc::recomputeDefaultStrides() { IE_THROW() << "Can't recompute stride: order size != blocked dims size"; auto &oneDnnStrides = desc.data.format_desc.blocking.strides; - if (std::any_of(blockedDims.begin(), blockedDims.end(), [](Dim val) { return val == Shape::UNDEFINED_DIM; })) { + if (getShape().hasZeroDims()) { + std::fill(std::begin(oneDnnStrides), std::begin(oneDnnStrides) + getShape().getRank(), 0); + } else if (std::any_of(blockedDims.begin(), blockedDims.end(), [](Dim val) { return val == Shape::UNDEFINED_DIM; })) { std::fill(std::begin(oneDnnStrides), std::begin(oneDnnStrides) + rank, DNNL_RUNTIME_DIM_VAL); initStrides(); } else { @@ -633,6 +667,11 @@ DnnlBlockedMemoryDesc::DnnlBlockedMemoryDesc(const mkldnn::memory::desc& mdesc, desc = cloneDescWithNewDims(mdesc, shape.getDims(), order); + if (shape.hasZeroDims()) { + auto& blk = desc.data.format_desc.blocking; + std::fill(std::begin(blk.strides), std::begin(blk.strides) + desc.data.ndims, 0); + } + initBlockedParams(); } diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.h b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.h index 770686c6317..f78707e03d6 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.h +++ b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_blocked_memory_desc.h @@ -71,7 +71,7 @@ private: explicit DnnlBlockedMemoryDesc(const mkldnn::memory::desc& mdesc); // Creates DnnlBlockedMemoryDesc using the shape parameter as a true shape but all other params (layout, blocks, etc.) are used from the mdesc, but - // the mdesc own shape is ignored. The main purpose of this constructor is making dynamic descriptor form some dummy mdesc, which stores info about + // the mdesc own shape is ignored. The main purpose of this constructor is making dynamic descriptor from some dummy mdesc, which stores info about // layout, blocking, strides, etc., and the provided dynamic shape. DnnlBlockedMemoryDesc(const mkldnn::memory::desc& mdesc, const Shape& shape); diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.cpp b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.cpp index 0e060912df2..5747529e587 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.cpp +++ b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.cpp @@ -15,6 +15,10 @@ DnnlMemoryDesc::DnnlMemoryDesc(const mkldnn::memory::desc& desc) : IE_THROW(Unexpected) << "Memory format any is prohibited!"; } +bool DnnlMemoryDesc::canComputeMemSizeZeroDims() const { + return getShape().hasZeroDims() && desc.data.offset0 != DNNL_RUNTIME_DIM_VAL; +} + size_t DnnlMemoryDesc::getCurrentMemSizeImp() const { return MKLDNNExtensionUtils::getMemSizeForDnnlDesc(desc); } diff --git a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.h b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.h index c17b847dc16..d796c7ef234 100644 --- a/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.h +++ b/inference-engine/src/mkldnn_plugin/memory_desc/dnnl_memory_desc.h @@ -63,6 +63,7 @@ private: size_t getElementOffset(size_t elemNumber) const override; + bool canComputeMemSizeZeroDims() const override; size_t getCurrentMemSizeImp() const override; bool isDefinedImp() const override; MemoryDescPtr cloneWithNewDimsImp(const VectorDims& dims) const override; diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_graph.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_graph.cpp index e4a5aa18f2f..37d8633bd5c 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_graph.cpp +++ b/inference-engine/src/mkldnn_plugin/mkldnn_graph.cpp @@ -319,7 +319,6 @@ void MKLDNNGraph::InitGraph() { SortTopologically(); InitDescriptors(); - RemoveDroppedEdges(); InitOptimalPrimitiveDescriptors(); @@ -385,15 +384,16 @@ void MKLDNNGraph::InitOptimalPrimitiveDescriptors() { void MKLDNNGraph::ExtractConstantAndExecutableNodes() { OV_ITT_SCOPE(FIRST_INFERENCE, itt::domains::MKLDNN_LT, "MKLDNNGraph::ExtractConstantAndExecutableNodes"); for (const auto& graphNode : graphNodes) { - if (graphNode->isConstant()) + if (graphNode->isConstant()) { constantGraphNodes.emplace_back(graphNode); - else if (CPU_DEBUG_CAPS_ALWAYS_TRUE(graphNode->isExecutable())) + } else if (CPU_DEBUG_CAPS_ALWAYS_TRUE(graphNode->isExecutable())) { /* @todo * Revise implementation. * With current way it is possible that with debug_caps enabled * we execute a node, which is not ready to be executed */ executableGraphNodes.emplace_back(graphNode); + } } } @@ -793,7 +793,7 @@ void MKLDNNGraph::PullOutputData(BlobMap &out) { // check for empty output blob if (std::any_of(outDims.begin(), outDims.end(), [](const Dim dim) {return dim == 0;})) { - return; + continue; } auto srcPrec = actualDesc.getPrecision(); @@ -836,10 +836,11 @@ inline void MKLDNNGraph::ExecuteNode(const MKLDNNNodePtr& node, const mkldnn::st DUMP(node, infer_count); OV_ITT_SCOPED_TASK(itt::domains::MKLDNNPlugin, node->profiling.execute); - if (node->isDynamicNode()) + if (node->isDynamicNode()) { node->executeDynamic(stream); - else + } else { node->execute(stream); + } } void MKLDNNGraph::Infer(MKLDNNInferRequest* request, int batch) { @@ -855,7 +856,6 @@ void MKLDNNGraph::Infer(MKLDNNInferRequest* request, int batch) { if (request) request->ThrowIfCanceled(); - ExecuteNode(node, stream); } @@ -994,22 +994,6 @@ Config MKLDNNGraph::getProperty() const { return config; } -Blob::Ptr MKLDNNGraph::getInputBlob(const std::string& name) { - auto itr = inputNodesMap.find(name); - if (itr != inputNodesMap.end()) { - return MemoryDescUtils::interpretAsBlob(itr->second->getChildEdgeAt(0)->getMemory()); - } - return nullptr; -} - -Blob::Ptr MKLDNNGraph::getOutputBlob(const std::string& name) { - auto itr = outputNodesMap.find(name); - if (itr != outputNodesMap.end()) { - return MemoryDescUtils::interpretAsBlob(itr->second->getParentEdgeAt(0)->getMemory()); - } - return nullptr; -} - void MKLDNNGraph::RemoveEdge(MKLDNNEdgePtr& edge) { for (auto it = graphEdges.begin(); it != graphEdges.end(); it++) { if ((*it) == edge) { diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_graph.h b/inference-engine/src/mkldnn_plugin/mkldnn_graph.h index 38e1bb01dc4..9d6703df665 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_graph.h +++ b/inference-engine/src/mkldnn_plugin/mkldnn_graph.h @@ -44,9 +44,6 @@ public: void setProperty(const std::map &properties); Config getProperty() const; - InferenceEngine::Blob::Ptr getInputBlob(const std::string& name); - InferenceEngine::Blob::Ptr getOutputBlob(const std::string& name); - template void CreateGraph(NET &network, const MKLDNNExtensionManager::Ptr& extMgr, diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.cpp index 1261df4b559..b789d1c01ff 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.cpp +++ b/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.cpp @@ -59,7 +59,7 @@ MKLDNNGraphOptimizer::MKLDNNGraphOptimizer() {} void MKLDNNGraphOptimizer::ApplyCommonGraphOptimizations(MKLDNNGraph &graph) { OV_ITT_SCOPE_CHAIN(FIRST_INFERENCE, taskChain, itt::domains::MKLDNN_LT, "ApplyCommonGraphOptimizations", "FuseConvolutionAndBias"); - FuseConvolutionAndBias(graph); + FuseConvolutionMatMulAndBias(graph); graph.RemoveDroppedNodes(); OV_ITT_SCOPE_NEXT(FIRST_INFERENCE, taskChain, "FuseMultiplyAndAdd"); @@ -166,37 +166,38 @@ void MKLDNNGraphOptimizer::ApplyImplSpecificGraphOptimizations(MKLDNNGraph &grap graph.RemoveDroppedEdges(); } -void MKLDNNGraphOptimizer::FuseConvolutionAndBias(MKLDNNGraph &graph) { +void MKLDNNGraphOptimizer::FuseConvolutionMatMulAndBias(MKLDNNGraph &graph) { auto& graphNodes = graph.GetNodes(); - auto isSuitableParentNode = [](MKLDNNNodePtr node) { - return node->getType() == Convolution && + auto isSuitableParentNode = [](const MKLDNNNodePtr& node) { + return (node->getType() == Convolution || node->getType() == MatMul) && node->getChildEdges().size() == 1 && node->getParentEdges().size() == 2 && node->getFusedWith().empty(); }; - auto isSuitableChildNode = [&](MKLDNNNodePtr parentNode, MKLDNNNodePtr childNode) { + auto isSuitableChildNode = [&](const MKLDNNNodePtr& parentNode, const MKLDNNNodePtr& childNode) { if (childNode->getAlgorithm() != EltwiseAdd || !childNode->getFusedWith().empty() || childNode->getParentEdges().size() != 2) return false; - auto biasNode = childNode->getParentEdgesAtPort(1)[0]->getParent(); + const auto biasNode = childNode->getParentEdgesAtPort(1)[0]->getParent(); if (biasNode->getType() != Input || !biasNode->isConstant() || biasNode->getChildEdges().size() != 1) return false; - auto convOutDims = parentNode->getOutputShapeAtPort(0).getDims(); - auto biasDims = getNormalizedDimsBySize(biasNode->getOutputShapeAtPort(0).getDims(), - convOutDims.size()); + const auto parentOutDims = parentNode->getOutputShapeAtPort(0).getDims(); + const auto biasDims = getNormalizedDimsBySize(biasNode->getOutputShapeAtPort(0).getDims(), + parentOutDims.size()); // TODO [NM]: Legacy ConvBias fusion transformation supports both per-tensor (via explicit broadcasing) and per-channel cases. // Most of the real models contain per-channel bias, so we need to reavaluate the need to support per-tensor variant. - if (convOutDims.size() != biasDims.size() || biasDims.size() < 2) + if (parentOutDims.size() != biasDims.size() || biasDims.size() < 2) return false; - if (biasDims[0] != 1 || !dimsEqualStrong(biasDims[1], convOutDims[1])) + const auto channelAxis = parentNode->getFusingAxis(); + if (!dimsEqualStrong(biasDims[channelAxis], parentOutDims[channelAxis])) return false; - for (int i = 2; i < biasDims.size(); i++) { - if (biasDims[i] != 1) + for (int i = 0; i < biasDims.size(); i++) { + if (biasDims[i] != 1 && i != channelAxis) return false; } @@ -262,13 +263,13 @@ void MKLDNNGraphOptimizer::FuseConvolutionAndBias(MKLDNNGraph &graph) { graph.RemoveEdge(remEdge); } - auto parentEltwise = parentNode; + const auto& parentEltwise = parentNode; MKLDNNEdgePtr newEdge(new MKLDNNEdge(parent, parentEltwise, inNum, parentEltwise->getParentEdges().size())); - auto &graphEdges = graph.GetEdges(); + auto& graphEdges = graph.GetEdges(); graphEdges.push_back(newEdge); parent->addEdge(newEdge); - auto partialShape = { parentEltwise->outputShapes[0].toPartialShape()[1] }; + auto partialShape = { parentEltwise->outputShapes[0].toPartialShape()[parentEltwise->getFusingAxis()] }; parent->outputShapes[inNum] = Shape(partialShape); parentEltwise->inputShapes.push_back(parent->outputShapes[0]); } @@ -627,7 +628,15 @@ void MKLDNNGraphOptimizer::FuseConvolutionAndZeroPoints(MKLDNNGraph &graph) { } } -static bool BF16QuantizeNodeFusing(MKLDNNNodePtr parentNode, MKLDNNNodePtr childNode) { +/** + * @todo FQ fusing was disabled for BF16 output since oneDNN primitives lack support + * for bf16 depthwise postops. + * This is not the case anymore, because after migration to oneDNN 2.3 FQ will be fused as + * multiple binary post ops. + * This check can already be removed for FC fusing, but should be kept for Convolution, + * which still uses legacy depthwise postops for performance reasons. + */ +static bool BF16QuantizeNodeFusing(const MKLDNNNodePtr& parentNode, const MKLDNNNodePtr& childNode) { return childNode->getType() == FakeQuantize && one_of(Precision::BF16, parentNode->getOriginalOutputPrecisionAtPort(0), @@ -638,7 +647,7 @@ void MKLDNNGraphOptimizer::FuseFullyConnectedAndSimpleOperation(MKLDNNGraph &gra auto& graphNodes = graph.GetNodes(); auto isSuitableParentNode = [](MKLDNNNodePtr node) { - return node->getType() == FullyConnected && node->getChildEdges().size() == 1 && node->getInputShapeAtPort(0).getRank() != 3; + return node->getType() == FullyConnected && node->getChildEdges().size() == 1; }; auto parent = graphNodes.begin(); diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.h b/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.h index 0b896da6272..0be66e5ba08 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.h +++ b/inference-engine/src/mkldnn_plugin/mkldnn_graph_optimizer.h @@ -19,7 +19,7 @@ public: void ApplyImplSpecificGraphOptimizations(MKLDNNGraph& graph); private: - void FuseConvolutionAndBias(MKLDNNGraph &graph); + void FuseConvolutionMatMulAndBias(MKLDNNGraph &graph); void FuseDeconvolutionAndSimpleOperation(MKLDNNGraph &graph); void FuseMultiplyAndAdd(MKLDNNGraph &graph); void FuseFullyConnectedAndSimpleOperation(MKLDNNGraph &graph); diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp index ccd9c96e675..6179f52394a 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp +++ b/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp @@ -190,8 +190,9 @@ void MKLDNNPlugin::MKLDNNInferRequest::redefineMemoryForInputNodes() { const auto inputNode = cpuInputNodes.find(blob.first); if (inputNode == cpuInputNodes.end()) IE_THROW() << "CPU execution graph doesn't contain input node with name: " << blob.first; - if (inputNode->second->isDynamicNode()) + if (inputNode->second->isDynamicNode()) { inputNode->second->redefineOutputMemory({blob.second->getTensorDesc().getDims()}); + } } } diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp index 55703b16384..32e64b625ca 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp +++ b/inference-engine/src/mkldnn_plugin/mkldnn_node.cpp @@ -4,6 +4,7 @@ #include "mkldnn_node.h" #include "dnnl_debug.h" +#include "mkldnn_edge.h" #include "mkldnn_extension_mngr.h" #include "mkldnn_itt.h" @@ -83,7 +84,7 @@ MKLDNNNode::MKLDNNNode(const std::shared_ptr& op, const mkldnn::en for (size_t i = 0; i < op->get_input_size(); i++) { const auto &shape = op->get_input_partial_shape(i); if (shape.rank().is_dynamic()) { - IE_THROW(Unexpected) << "CPU plug-in doesn't support operation with dynamic rank"; + IE_THROW(Unexpected) << "CPU plug-in doesn't support " << getTypeStr() << " operation with dynamic rank. Operation name: " << getName(); } bool isScalar = shape.rank().get_length() == 0; @@ -98,7 +99,7 @@ MKLDNNNode::MKLDNNNode(const std::shared_ptr& op, const mkldnn::en for (size_t i = 0; i < op->get_output_size(); i++) { const auto &shape = op->get_output_partial_shape(i); if (shape.rank().is_dynamic()) { - IE_THROW(Unexpected) << "CPU plug-in doesn't support operation with dynamic rank"; + IE_THROW(Unexpected) << "CPU plug-in doesn't support " << getTypeStr() << " operation with dynamic rank. Operation name: " << getName(); } bool isScalar = shape.rank().get_length() == 0; @@ -229,6 +230,15 @@ bool MKLDNNNode::isEdgesEmpty(const std::vector& edges) const return true; } +void MKLDNNNode::createPrimitive() { + if (inputShapesDefined() && isExecutable()) { + if (needPrepareParams()) { + prepareParams(); + } + updateLastInputDims(); + } +} + void MKLDNNNode::selectOptimalPrimitiveDescriptor() { selectPreferPrimitiveDescriptor(getPrimitivesPriority(), false); } @@ -509,12 +519,14 @@ void MKLDNNNode::executeDynamic(mkldnn::stream strm) { if (needShapeInfer()) { redefineOutputMemory(shapeInfer()); } - if (needPrepareParams()) { - IE_ASSERT(inputShapesDefined()) << "Can't prepare params for " << getTypeStr() << " node with name: " << getName() << - " since the input shapes are not defined."; - prepareParams(); + if (isExecutable()) { + if (needPrepareParams()) { + IE_ASSERT(inputShapesDefined()) << "Can't prepare params for " << getTypeStr() << " node with name: " << getName() << + " since the input shapes are not defined."; + prepareParams(); + } + executeDynamicImpl(strm); } - executeDynamicImpl(strm); updateLastInputDims(); } @@ -716,7 +728,7 @@ void MKLDNNNode::initDescriptor(const NodeConfig& config) { selectedPD->setConfig(rightConfig); } -void MKLDNNNode::prepareMemory(const NodeDesc *selected_pd, mkldnn::primitive_desc_iterator& itpd) { +void MKLDNNNode::prepareMemory(mkldnn::primitive_desc_iterator& itpd) { for (size_t i = 0; i < getChildEdges().size(); i++) { auto &dstMemPtr = getChildEdgeAt(i)->getMemoryPtr(); if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) @@ -1048,6 +1060,18 @@ void MKLDNNNode::setDynamicBatchLim(int lim) { } } +void MKLDNNNode::appendPostOpArgs(const mkldnn::primitive_attr& attr, + std::unordered_map& primArgs, + const std::vector& binaryPostOpsArgs) { + auto post_ops = attr.get_post_ops(); + int idx = 0; + for (int i = 0; i < post_ops.len(); i++) { + if (post_ops.kind(i) == mkldnn::primitive::kind::binary) { + primArgs.insert({DNNL_ARG_ATTR_MULTIPLE_POST_OP(i) | DNNL_ARG_SRC_1, binaryPostOpsArgs[idx++]->GetPrimitive()}); + } + } +} + bool MKLDNNNode::isFusedWith(Type fusedNodeType) const { for (auto fusedNode : fusedWith) { if (fusedNode->type == fusedNodeType) @@ -1078,10 +1102,14 @@ Layout MKLDNNNode::getWeightsLayoutByDims(SizeVector dims, bool isGrouped) { } } -void MKLDNNNode::appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align, bool initAsBinary, bool initBinaryMemory) { +void MKLDNNNode::appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align) { IE_THROW() << "Fusing of " << this->getType() << " operation is not implemented"; } +void MKLDNNNode::appendBinPostOps(mkldnn::post_ops& ops, const std::vector& binaryShape, std::vector& binaryPostOpsMem) { + IE_THROW() << "Binary fusing of " << this->getType() << " operation is not implemented"; +} + std::vector MKLDNNNode::getInputPrecisions() const { std::vector inputPrecisions; for (size_t i = 0; i < getParentEdges().size(); i++) { @@ -1205,6 +1233,9 @@ MKLDNNNode* MKLDNNNode::NodesFactory::create(const std::shared_ptr bool MKLDNNNode::canBePerformedAsScaleShift(const MKLDNNNode *parentNode) const { size_t fusingPort = 0; + // @todo graph optimizer can provide parentNode as nullptr. Should be avoided + const size_t channelAxis = parentNode ? parentNode->getFusingAxis() : MKLDNNNode::getFusingAxis(); + for (size_t i = (parentNode == nullptr ? 1 : 0); i < getParentEdges().size(); i++) { MKLDNNNode *node = getParentEdgesAtPort(i)[0]->getParent().get(); if (node == nullptr) { @@ -1225,7 +1256,8 @@ bool MKLDNNNode::canBePerformedAsScaleShift(const MKLDNNNode *parentNode) const if (i == fusingPort) continue; auto& weightShape = getInputShapeAtPort(i).getDims(); - if (getParentEdgesAtPort(i)[0]->getParent()->getChildEdges().size() != 1 || !isPerTensorOrPerChannelBroadcastable(dataShape, weightShape, true)) + if (getParentEdgesAtPort(i)[0]->getParent()->getChildEdges().size() != 1 || + !isPerTensorOrPerChannelBroadcastable(dataShape, weightShape, channelAxis, true)) return false; } return true; @@ -1246,6 +1278,9 @@ bool MKLDNNNode::canBePerformedAsScaleShift(const MKLDNNNode *parentNode) const || isConvertablePowerStatic(); } +// @todo shifts for Subtract and scales for Divide are replaced with +// Add (with opposite sign) and Multiply (with inverse value) for legacy dephwise post ops +// This can be avoided after dephwise post ops are gone std::pair, std::vector> MKLDNNNode::getScalesAndShifts(const MKLDNNNode *parentNode) const { std::vector scales, shifts; @@ -1309,6 +1344,36 @@ std::pair, std::vector> MKLDNNNode::getScalesAndShifts return {scales, shifts}; } +bool MKLDNNNode::isInputTensorAtPortEmpty(size_t port) const { + if (inputShapes.size() <= port) { + IE_THROW() << "Incorrect input port number for node " << getName(); + } + return getParentEdgesAtPort(port)[0]->getMemory().GetShape().hasZeroDims(); +} + +bool MKLDNNNode::isOutputTensorAtPortEmpty(size_t port) const { + if (outputShapes.size() <= port) { + IE_THROW() << "Incorrect output port number for node " << getName(); + } + return getChildEdgesAtPort(port)[0]->getMemory().GetShape().hasZeroDims(); +} + +bool MKLDNNNode::hasEmptyInputTensors() const { + for (size_t i = 0; i < getParentEdges().size(); i++) { + if (isInputTensorAtPortEmpty(i)) + return true; + } + return false; +} + +bool MKLDNNNode::hasEmptyOutputTensors() const { + for (size_t i = 0; i < outputShapes.size(); i++) { + if (isOutputTensorAtPortEmpty(i)) + return true; + } + return false; +} + bool MKLDNNNode::inputShapesDefined() const { for (size_t i = 0; i < getParentEdges().size(); i++) { if (!getParentEdgesAtPort(i)[0]->getMemory().getDesc().isDefined()) @@ -1382,8 +1447,11 @@ std::vector MKLDNNNode::shapeInferGeneric(const std::vector& std::vector newOutputShapes(opToShapeInfer->get_output_size()); for (size_t i = 0; i < newOutputShapes.size(); i++) { const auto &partShape = opToShapeInfer->get_output_partial_shape(i); - if (partShape.is_dynamic()) - IE_THROW(NotImplemented) << "CPU plug-in doesn't support default shape infer for nodes with internal dynamism"; + if (partShape.is_dynamic()) { + IE_THROW(NotImplemented) << "CPU plug-in doesn't support default shape infer for node " << getTypeStr() + << " with internal dynamism. Operation name: " << getName(); + } + newOutputShapes[i] = partShape.get_shape(); } return newOutputShapes; @@ -1408,10 +1476,11 @@ bool MKLDNNNode::canFuseSimpleOperation(const MKLDNNNodePtr& node) const { } return ret; } else if (node->getType() == Eltwise) { - return one_of(node->getAlgorithm(), EltwiseRelu, EltwiseGelu, EltwiseElu, EltwiseSigmoid, EltwiseClamp, EltwiseTanh, - EltwiseSwish, EltwiseHswish, EltwiseMish, EltwiseHsigmoid, EltwiseRoundHalfToEven, - EltwiseRoundHalfAwayFromZero, EltwiseAbs, EltwiseSqrt, EltwiseSoftRelu) || - node->canBePerformedAsScaleShift(this); + return one_of(node->getAlgorithm(), + EltwiseRelu, EltwiseGelu, EltwiseElu, EltwiseSigmoid, EltwiseClamp, EltwiseTanh, + EltwiseSwish, EltwiseHswish, EltwiseMish, EltwiseHsigmoid, EltwiseRoundHalfToEven, + EltwiseRoundHalfAwayFromZero, EltwiseAbs, EltwiseSqrt, EltwiseSoftRelu) || + node->canBePerformedAsScaleShift(this); } return false; } diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_node.h b/inference-engine/src/mkldnn_plugin/mkldnn_node.h index 3e0448f0db6..85475733b13 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_node.h +++ b/inference-engine/src/mkldnn_plugin/mkldnn_node.h @@ -199,11 +199,19 @@ public: // must be called only after MKLDNNGraph::InitEdges() virtual bool isExecutable() const { - return true; + return !hasEmptyInputTensors(); } bool isConstant(); + virtual size_t getFusingAxis() const { + return 1; + } + + static void appendPostOpArgs(const mkldnn::primitive_attr& attr, + std::unordered_map& primArgs, + const std::vector& binaryPostOpsArgs); + bool isFusedWith(Type type) const; void addFusedNode(const MKLDNNNodePtr &fusingNode) { @@ -362,7 +370,7 @@ public: */ virtual void filterSupportedPrimitiveDescriptors(); - virtual void createPrimitive() = 0; + virtual void createPrimitive(); virtual void selectOptimalPrimitiveDescriptor(); virtual void initOptimalPrimitiveDescriptor(); @@ -419,7 +427,7 @@ public: if (impl_type == selected_pd->getImplementationType() && descsCompatible(srcDescs, selected_pd->getConfig().inConfs) && descsCompatible(dstDescs, selected_pd->getConfig().outConfs)) { - prepareMemory(selected_pd, itpd); + prepareMemory(itpd); PD prim_desc = createPd(desc); return {itpd.get()}; } @@ -594,8 +602,10 @@ protected: * Seed node should call this routine and pass its post operations list as parameter. * @param ops List of fused post operations */ - virtual void appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align = -1, bool initAsBinary = false, bool initBinaryMemory = false); - virtual AttrPtr initPrimitiveAttr() const { return nullptr; } + virtual void appendPostOps(mkldnn::post_ops& ops, const VectorDims& postOpDims, int align = -1); + virtual void appendBinPostOps(mkldnn::post_ops& ops, const VectorDims& postOpDims, std::vector& binaryPostOpsMem); + + virtual std::shared_ptr initPrimitiveAttr() { return nullptr; } typedef std::function GetPrimitiveMemoryFormatFunc; @@ -636,7 +646,7 @@ protected: std::vector internalBlobMemory; std::vector supportedPrimitiveDescriptors; std::unordered_map primArgs; - std::vector binaryPostOpsArgs; + std::vector binaryPostOpsArgs; MKLDNNPrimitive prim; std::vector descs; @@ -714,8 +724,16 @@ protected: supportedPrimitiveDescriptors.push_back({config, implType}); } + void prepareMemory(mkldnn::primitive_desc_iterator& itpd); + bool isDynamic = false; + bool isInputTensorAtPortEmpty(size_t port) const; + bool isOutputTensorAtPortEmpty(size_t port) const; + + bool hasEmptyInputTensors() const; + bool hasEmptyOutputTensors() const; + bool inputShapesDefined() const; bool outputShapesDefined() const; bool shapesDefined() const; @@ -738,6 +756,7 @@ protected: } std::vector lastInputDims = {}; + std::shared_ptr opToShapeInfer; private: @@ -780,7 +799,6 @@ private: return PD(*selected_desc_ptr, engine); } - void prepareMemory(const NodeDesc *selected_pd, mkldnn::primitive_desc_iterator& itpd); enum LOOK { LOOK_UP = 1, LOOK_DOWN = 2 }; ConstantType checkConstant(LOOK look, std::vector& checkNodes); diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_nodes_factory.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_nodes_factory.cpp index f7f8aa2c7c7..f3ff2beba9a 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_nodes_factory.cpp +++ b/inference-engine/src/mkldnn_plugin/mkldnn_nodes_factory.cpp @@ -80,6 +80,7 @@ #include "nodes/mkldnn_reduce_node.h" #include "nodes/mkldnn_if_node.h" #include "nodes/mkldnn_ctc_greedy_decoder_node.h" +#include "nodes/mkldnn_non_zero.h" #define MKLDNN_NODE(__prim, __type) \ registerNodeIfRequired(MKLDNNPlugin, __prim, __type, MKLDNNNodeImpl<__prim>) @@ -168,4 +169,5 @@ MKLDNNPlugin::MKLDNNNode::NodesFactory::NodesFactory() MKLDNN_NODE(MKLDNNTopKNode, TopK); MKLDNN_NODE(MKLDNNStridedSliceNode, StridedSlice); MKLDNN_NODE(MKLDNNGRNNode, GRN); + MKLDNN_NODE(MKLDNNNonZeroNode, NonZero); } diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_plugin.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_plugin.cpp index 94fa5067557..16f3d3accb9 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_plugin.cpp +++ b/inference-engine/src/mkldnn_plugin/mkldnn_plugin.cpp @@ -504,23 +504,24 @@ Engine::LoadExeNetworkImpl(const InferenceEngine::CNNNetwork &network, const std OV_ITT_SCOPED_TASK(itt::domains::MKLDNNPlugin, "Engine::LoadExeNetworkImpl"); // verification of supported input - InferenceEngine::InputsDataMap _networkInputs = network.getInputsInfo(); - for (const auto &ii : _networkInputs) { + for (const auto &ii : network.getInputsInfo()) { auto input_precision = ii.second->getPrecision(); - if (input_precision != InferenceEngine::Precision::FP64 && - input_precision != InferenceEngine::Precision::FP32 && - input_precision != InferenceEngine::Precision::I32 && - input_precision != InferenceEngine::Precision::U32 && - input_precision != InferenceEngine::Precision::U16 && - input_precision != InferenceEngine::Precision::I16 && - input_precision != InferenceEngine::Precision::I8 && - input_precision != InferenceEngine::Precision::U8 && - input_precision != InferenceEngine::Precision::BF16 && - input_precision != InferenceEngine::Precision::BOOL && - input_precision != InferenceEngine::Precision::I64 && - input_precision != InferenceEngine::Precision::U64) { + + using hash_t = std::hash::type>; + + static const std::unordered_set supported_precisions = { + Precision::U8, Precision::I8, + Precision::U16, Precision::I16, + Precision::U32, Precision::I32, + Precision::U64, Precision::I64, + Precision::BF16, Precision::FP16, + Precision::FP32, Precision::FP64, + Precision::BOOL + }; + + if (!supported_precisions.count(input_precision)) { IE_THROW(NotImplemented) - << "Input image format " << input_precision << " is not supported yet..."; + << "Input image format " << input_precision << " is not supported yet..."; } } diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_primitive.h b/inference-engine/src/mkldnn_plugin/mkldnn_primitive.h index ffd43ee8dbd..d7e9c05a6fe 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_primitive.h +++ b/inference-engine/src/mkldnn_plugin/mkldnn_primitive.h @@ -18,7 +18,6 @@ public: operator bool() const; MKLDNNPrimitive& operator=(const std::shared_ptr& primitive); mkldnn::primitive operator*(); - void reset(mkldnn::primitive* primitive); private: diff --git a/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_matmul_to_fc.cpp b/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_matmul_to_fc.cpp index d43953d46c6..b3ff0ef1d9e 100644 --- a/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_matmul_to_fc.cpp +++ b/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_matmul_to_fc.cpp @@ -36,8 +36,9 @@ MKLDNNPlugin::ConvertMatMulToFC::ConvertMatMulToFC() { auto rank_a = shape_a.rank().get_length(); auto rank_b = shape_b.rank().get_length(); - // Transformation to FC is not supported for 1D second input - if (rank_b == 1) { + // Transformation to FC is not supported for 1D inputs + if (rank_a == 1 || rank_b == 1 || + rank_a > 3 || rank_b > 3) { return false; } @@ -47,7 +48,6 @@ MKLDNNPlugin::ConvertMatMulToFC::ConvertMatMulToFC() { std::count_if(shape_b.begin(), shape_b.end(), [](ngraph::Dimension x) { return x != 1; }) > 2) { return false; } - /* * get_aligned_shapes function align two input shapes to have the same size and * the same batch dimensions (last two dimensions are not comparable). diff --git a/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_to_cpu_specific_opset.hpp b/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_to_cpu_specific_opset.hpp index ff901fbafc0..078fb75c14d 100644 --- a/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_to_cpu_specific_opset.hpp +++ b/inference-engine/src/mkldnn_plugin/ngraph_transformations/convert_to_cpu_specific_opset.hpp @@ -7,7 +7,6 @@ #include "ngraph/op/fake_quantize.hpp" #include "ngraph/pass/manager.hpp" #include "reshape_fc_fusion.hpp" -#include "reshape_fully_connected.hpp" #include "align_matmul_input_ranks.hpp" #include "reshape_prelu.hpp" #include "convert_broadcast_to_tiles.hpp" @@ -29,7 +28,6 @@ inline void ConvertToCPUSpecificOpset(std::shared_ptr &nGraphF manager.register_pass(); manager.register_pass(); manager.register_pass(); - manager.register_pass(); manager.register_pass(); manager.register_pass(); manager.register_pass(); diff --git a/inference-engine/src/mkldnn_plugin/ngraph_transformations/reshape_fully_connected.cpp b/inference-engine/src/mkldnn_plugin/ngraph_transformations/reshape_fully_connected.cpp deleted file mode 100644 index 2446e7694a8..00000000000 --- a/inference-engine/src/mkldnn_plugin/ngraph_transformations/reshape_fully_connected.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (C) 2021 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#include "reshape_fully_connected.hpp" -#include "op/fully_connected.hpp" -#include -#include -#include -#include -#include -#include -#include - -NGRAPH_RTTI_DEFINITION(MKLDNNPlugin::ReshapeFullyConnected, "ReshapeFullyConnected", 0); - -MKLDNNPlugin::ReshapeFullyConnected::ReshapeFullyConnected() { - ngraph::OutputVector twoInputs = { - ngraph::pattern::any_input(ngraph::pattern::has_static_rank()), ngraph::pattern::any_input(ngraph::pattern::has_static_shape())}; - ngraph::OutputVector threeInputs = { - ngraph::pattern::any_input(ngraph::pattern::has_static_rank()), ngraph::pattern::any_input(ngraph::pattern::has_static_shape()), - ngraph::pattern::any_input()}; - auto fcTwoInputs = ngraph::pattern::wrap_type(twoInputs, ngraph::pattern::has_static_rank()); - auto fcThreeInputs = ngraph::pattern::wrap_type(threeInputs, ngraph::pattern::has_static_rank()); - const auto fcTwoOrThreeInputs = std::make_shared(ngraph::OutputVector{fcTwoInputs, fcThreeInputs}); - - ngraph::matcher_pass_callback callback = [this](ngraph::pattern::Matcher& m) { - auto fc = std::dynamic_pointer_cast(m.get_match_root()); - if (!fc || transformation_callback(fc)) { - return false; - } - - auto fc_input_shape = fc->get_input_partial_shape(0); - auto input_rank = fc_input_shape.rank().get_length(); - auto output_shape = fc->get_output_partial_shape(0); - - if (input_rank == 2 || input_rank == 0) { - return false; - } - - ngraph::NodeVector new_ops; - int64_t K = *(fc->get_input_shape(1).rbegin()); // requested 2nd input with static shape in the matcher - auto reshape = std::make_shared( - fc->input_value(0), ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{2}, std::vector{-1, K}), false); - if (reshape->get_output_partial_shape(0).rank().is_dynamic()) - return false; - new_ops.push_back(reshape); - - reshape->set_friendly_name(fc->get_friendly_name() + "/Reshape"); - - // Calculate output shape for new FullyConnected layer - // [I, K] * [O, K] = [I, O] - auto I = reshape->get_output_partial_shape(0)[0]; - auto O = fc->get_input_partial_shape(1)[0]; - ngraph::PartialShape output_shape_new{I, O}; - - std::shared_ptr fc_new; - if (fc->get_input_size() == 2) { - fc_new = std::make_shared(reshape, - fc->input_value(1), - output_shape_new.rank(), - fc->get_output_type()); - } else if (fc->get_input_size() == 3) { - fc_new = std::make_shared(reshape, - fc->input_value(1), - fc->input_value(2), - output_shape_new.rank(), - fc->get_output_type()); - } else { - return false; - } - new_ops.push_back(fc_new); - - if (output_shape != output_shape_new) { - auto I_idxs = std::vector(input_rank - 1); - std::iota(I_idxs.begin(), I_idxs.end(), 0); - auto A_input_shape = ngraph::op::util::make_try_fold(fc->input_value(0)); - auto B_input_shape = ngraph::op::util::make_try_fold(fc->input_value(1)); - auto I_node = ngraph::op::util::node_to_get_shape_value_of_indices_from_shape_node(A_input_shape, {I_idxs}); - auto O_node = ngraph::op::util::node_to_get_shape_value_of_indices_from_shape_node(B_input_shape, {0}); - ngraph::OutputVector output_shape_dims{I_node, O_node}; - - const auto original_rank = fc->get_output_rank(); - NGRAPH_CHECK(original_rank.is_static()); - if (input_rank < original_rank.get_length()) { - const size_t const_shape_value = original_rank.get_length() - input_rank; - output_shape_dims.insert( - output_shape_dims.begin(), ngraph::opset1::Constant::create(I_node->get_element_type(), { const_shape_value }, { 1 })); - } - - auto reshape_output_shape = ngraph::op::util::make_try_fold(output_shape_dims, 0); - auto reshape_output = std::make_shared(fc_new, reshape_output_shape, false); - new_ops.push_back(A_input_shape); - new_ops.push_back(B_input_shape); - new_ops.push_back(I_node); - new_ops.push_back(O_node); - new_ops.push_back(reshape_output_shape); - new_ops.push_back(reshape_output); - reshape_output->set_friendly_name(fc->get_friendly_name()); - fc_new->set_friendly_name(fc->get_friendly_name() + "/FC"); - ngraph::copy_runtime_info(fc, new_ops); - ngraph::replace_node(fc, reshape_output); - } else { - fc_new->set_friendly_name(fc->get_friendly_name()); - ngraph::copy_runtime_info(fc, new_ops); - ngraph::replace_node(fc, fc_new); - } - - return true; - }; - - auto m = std::make_shared(fcTwoOrThreeInputs, "ReshapeFullyConnected"); - this->register_matcher(m, callback); -} diff --git a/inference-engine/src/mkldnn_plugin/ngraph_transformations/reshape_fully_connected.hpp b/inference-engine/src/mkldnn_plugin/ngraph_transformations/reshape_fully_connected.hpp deleted file mode 100644 index 162427de5de..00000000000 --- a/inference-engine/src/mkldnn_plugin/ngraph_transformations/reshape_fully_connected.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2021 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#pragma once - -#include - -/* - * Description: - * ReshapeFullyConnected transformation detects FullyConnected operations - * and for each operation where input shape is greater than 2 inserts Reshape - * operations before and after FullyConnected operation. This transformation is - * required because of IE restrictions. - */ - -namespace MKLDNNPlugin { - -class ReshapeFullyConnected: public ngraph::pass::MatcherPass { -public: - NGRAPH_RTTI_DECLARATION; - ReshapeFullyConnected(); -}; - -} // namespace MKLDNNPlugin diff --git a/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.cpp b/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.cpp index 8763b551af9..31205ad84e3 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.cpp @@ -4,27 +4,208 @@ #include "cpu_convert.h" #include "cpu_memcpy.h" -#include "utils/bfloat16.hpp" +#include +#include #include +#include +#include +#include +#include #include #include -#include +#include +using namespace MKLDNNPlugin; using namespace InferenceEngine; +using namespace dnnl::impl::cpu::x64; +using namespace dnnl::impl::utils; +using namespace Xbyak; namespace { -template -void convert(const void *srcPtr, void *dstPtr, const size_t size) { - if (std::is_same::value) { - cpu_memcpy(dstPtr, srcPtr, size*sizeof(dstType)); - } else { - const srcType *srcData = reinterpret_cast(srcPtr); - dstType *dstData = reinterpret_cast(dstPtr); +template +void convert_vec(jit_generator & gen, + const RegExp & src, + const RegExp & dst); - parallel_for(size, [&](size_t i) { - dstData[i] = static_cast(srcData[i]); +template <> +void convert_vec(jit_generator & gen, + const RegExp & src, + const RegExp & dst) { + auto const & f16vec = gen.xmm3; + auto const & f32vec = gen.ymm4; + + gen.movdqu(f16vec, gen.xword[src]); + gen.vcvtph2ps(f32vec, f16vec); + gen.vmovups(gen.yword[dst], f32vec); +} + +template <> +void convert_vec(jit_generator & gen, + const RegExp & src, + const RegExp & dst) { + auto const & f16vec = gen.xmm3; + auto const & f32vec = gen.ymm4; + + gen.vmovups(f32vec, gen.yword[src]); + gen.vcvtps2ph(f16vec, f32vec, 0); + gen.movdqu(gen.xword[dst], f16vec); +} + +class jit_convert_array : public jit_generator { + DECLARE_CPU_JIT_AUX_FUNCTIONS(jit_convert_array) + + void generate() override { + const size_t vlen = 8u; + const size_t vlen_log2 = 3; + + auto reg_src = rax; + auto reg_dst = rbx; + auto reg_sz = rdx; + + Label tail, exit; + + preamble(); + + mov(reg_src, ptr[param1 + offsetof(args_t, src)]); + mov(reg_dst, ptr[param1 + offsetof(args_t, out)]); + mov(reg_sz, ptr[param1 + offsetof(args_t, count)]); + + xor_(rsi, rsi); + mov(r8, reg_sz); + shr(r8, vlen_log2); + + foreach(rsi, 1, r8, [&, this](const Xbyak::Reg64& idx) { + _convert_vec(*this, reg_src, reg_dst); + add(reg_src, _src_size * vlen); + add(reg_dst, _dst_size * vlen); }); + + L(tail); + + shl(rsi, vlen_log2); + sub(reg_sz, rsi); + test(reg_sz, reg_sz); + jz(exit); + + // allocate array for 8 floats on stack + sub(rsp, vlen * sizeof(float)); + mov(r8, rsp); + + vpxor(ymm4, ymm4, ymm4); + vmovups(yword[r8], ymm4); + + // Tail conversion + copy(r8, reg_src, reg_sz, _src_size); + _convert_vec(*this, r8, r8); + copy(reg_dst, r8, reg_sz, _dst_size); + + // Free the array on stack + add(rsp, vlen * sizeof(float)); + + L(exit); + + postamble(); + } + + void foreach(const Xbyak::Reg64& idx, + size_t step, + const Xbyak::Reg64& end, + std::function && fn) { + Label loop, exit; + + L(loop); + cmp(idx, end); + jge(exit); + + fn(idx); + + add(idx, step); + jmp(loop); + L(exit); + } + + void copy(const Xbyak::Reg64& dst, + const Xbyak::Reg64& src, + const Xbyak::Reg64& size, + size_t item_size) { + push(rsi); + push(r15); + + xor_(rsi, rsi); + + auto address_frame = [this](size_t size) -> const AddressFrame& { + switch (size) { + case 1: return byte; + case 2: return word; + case 4: return dword; + case 8: return qword; + default: + break; + } + return ptr; + }; + + const auto & addr_frame = address_frame(item_size); + + foreach(rsi, 1, size, [&, this](const Xbyak::Reg64& idx) { + mov(r15, addr_frame[src + idx * item_size]); + mov(addr_frame[dst + idx * item_size], r15); + }); + + pop(r15); + pop(rsi); + } + +public: + typedef struct { + const void* src; + void* out; + const size_t count; + } args_t; + + typedef void (*fn_t)(const args_t*); + + typedef void (*convert_vec_t)(jit_generator &, + const RegExp &, + const RegExp &); + + jit_convert_array(convert_vec_t convert_vec, + size_t src_size, + size_t dst_size) + : _convert_vec(convert_vec) + , _src_size(src_size) + , _dst_size(dst_size) {} + + template + static fn_t get() { + if (mayiuse(avx2) && cpu().has(util::Cpu::tF16C)) { + static jit_convert_array converter(convert_vec, sizeof(src_t), sizeof(dst_t)); + auto & generator = static_cast(converter); + generator.create_kernel(); + return (fn_t)generator.jit_ker(); + } + return nullptr; + } + +private: + convert_vec_t _convert_vec; + size_t _src_size; + size_t _dst_size; +}; + +template +void jit_convert(const TI* arg, TO* out, size_t count) { + using jit_impl = jit_convert_array; + static auto converter = jit_impl::get(); + + if (converter) { + typename jit_impl::args_t args = { arg, out, count }; + converter(&args); + } else { + for (size_t i = 0; i < count; ++i) { + out[i] = static_cast(arg[i]); + } } } @@ -35,84 +216,391 @@ struct PrecisionInfo { template <> struct PrecisionInfo { - using value_type = MKLDNNPlugin::bfloat16_t; + using value_type = bfloat16_t; }; +template <> +struct PrecisionInfo { + using value_type = ov::float16; +}; + +template <> +struct PrecisionInfo { + using value_type = uint8_t; +}; + +template::value + || std::is_same::value, + float, T>::type> +struct Range { + const std::tuple & fit(const Precision & prec); + +private: + std::tuple _range { + std::numeric_limits::lowest(), + std::numeric_limits::max() + }; +}; + +template +const std::tuple & Range::fit(const Precision & prec) { + if (prec.is_float()) { + double lbound, ubound; + switch (prec) { + case Precision::BF16: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::FP16: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::FP32: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::FP64: + lbound = std::numeric_limits::lowest(); + ubound = std::numeric_limits::max(); + break; + default: + IE_THROW() << "Unsupported precision"; + } + std::get<0>(_range) = static_cast(std::max(static_cast(std::get<0>(_range)), lbound)); + std::get<1>(_range) = static_cast(std::min(static_cast(std::get<1>(_range)), ubound)); + } else { + int64_t lbound; + uint64_t ubound; + switch (prec) { + case Precision::BOOL: + case Precision::U8: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::I8: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::U16: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::I16: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::U32: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::I32: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::U64: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + case Precision::I64: + lbound = static_cast(std::numeric_limits::lowest()); + ubound = static_cast(std::numeric_limits::max()); + break; + default: + IE_THROW() << "Unsupported precision"; + } + using ltype = typename std::conditional< + std::is_floating_point::value, + double, int64_t>::type; + using utype = typename std::conditional< + std::is_floating_point::value, + double, uint64_t>::type; + std::get<0>(_range) = static_cast(std::max(static_cast(std::get<0>(_range)), static_cast(lbound))); + std::get<1>(_range) = static_cast(std::min(static_cast(std::get<1>(_range)), static_cast(ubound))); + } + return _range; +} + struct ConvertContext { const void *srcPtr; void *dstPtr; size_t size; + Precision interimPrc; + Precision dstPrc; bool converted; + + template + std::tuple range() const { + Range r; + r.fit(interimPrc); + return r.fit(dstPrc); + } }; template -struct ConvertPrecision { - using src_t = typename std::tuple_element<0, T>::type; - using dst_t = typename std::tuple_element<1, T>::type; +struct ConvertPrecision; +template +struct ConvertPrecision> { void operator()(ConvertContext & ctx) { - convert(ctx.srcPtr, ctx.dstPtr, ctx.size); + auto src = static_cast(ctx.srcPtr); + auto dst = static_cast(ctx.dstPtr); + src_t lbound, ubound; + std::tie(lbound, ubound) = ctx.range(); + + if (std::is_integral::value + || ctx.interimPrc.is_float() + || std::is_integral::value) { + parallel_for(ctx.size, [&](size_t i) { + dst[i] = static_cast(std::max(std::min(src[i], ubound), lbound)); + }); + } else { + parallel_for(ctx.size, [&](size_t i) { + dst[i] = static_cast(std::trunc(std::max(std::min(src[i], ubound), lbound))); + }); + } + ctx.converted = true; } }; +template<> +struct ConvertPrecision> { + void operator()(ConvertContext & ctx) { + auto src = static_cast(ctx.srcPtr); + auto dst = static_cast(ctx.dstPtr); + + if (ctx.interimPrc.is_float()) { + parallel_for(ctx.size, [&](size_t i) { + dst[i] = static_cast(src[i]); + }); + } else { + float lbound, ubound; + std::tie(lbound, ubound) = ctx.range(); + parallel_for(ctx.size, [&](size_t i) { + dst[i] = static_cast(std::trunc(std::max(std::min(src[i], ubound), lbound))); + }); + } + + ctx.converted = true; + } +}; + +template<> +struct ConvertPrecision> { + void operator()(ConvertContext & ctx) { + auto src = static_cast(ctx.srcPtr); + auto dst = static_cast(ctx.dstPtr); + + if (ctx.interimPrc.is_float()) { + parallel_for(ctx.size, [&](size_t i) { + dst[i] = static_cast(src[i]); + }); + } else { + float lbound, ubound; + std::tie(lbound, ubound) = ctx.range(); + parallel_for(ctx.size, [&](size_t i) { + dst[i] = std::trunc(std::max(std::min(static_cast(src[i]), ubound), lbound)); + }); + } + + ctx.converted = true; + } +}; + +template +struct ConvertPrecision> { + void operator()(ConvertContext & ctx) { + auto src = static_cast(ctx.srcPtr); + auto dst = static_cast(ctx.dstPtr); + + constexpr size_t batch = 64; + const size_t iterations = MKLDNNPlugin::div_up(ctx.size, batch); + typedef float batch_type[batch]; + + src_t lbound, ubound; + std::tie(lbound, ubound) = ctx.range(); + + if (std::is_integral::value + || ctx.interimPrc.is_float()) { + parallel_for(iterations, [&](size_t i) { + batch_type tmp; + const size_t offset = i * batch; + const size_t current_batch_size = std::min(ctx.size - offset, batch); + for (size_t j = 0; j < current_batch_size; ++j) // src_t -> fp32 + tmp[j] = static_cast(std::max(std::min(src[offset + j], ubound), lbound)); + jit_convert(tmp, dst + offset, current_batch_size); // fp32 -> fp16 + }); + } else { + parallel_for(iterations, [&](size_t i) { + batch_type tmp; + const size_t offset = i * batch; + const size_t current_batch_size = std::min(ctx.size - offset, batch); + for (size_t j = 0; j < current_batch_size; ++j) // src_t -> fp32 + tmp[j] = static_cast(std::trunc(std::max(std::min(src[offset + j], ubound), lbound))); + jit_convert(tmp, dst + offset, current_batch_size); // fp32 -> fp16 + }); + } + + ctx.converted = true; + } +}; + +template +struct ConvertPrecision> { + void operator()(ConvertContext & ctx) { + auto src = static_cast(ctx.srcPtr); + auto dst = static_cast(ctx.dstPtr); + + constexpr size_t batch = 64; + const size_t iterations = MKLDNNPlugin::div_up(ctx.size, batch); + typedef float batch_type[batch]; + + float lbound, ubound; + std::tie(lbound, ubound) = ctx.range(); + + if (ctx.interimPrc.is_float() + || std::is_integral::value) { + parallel_for(iterations, [&](size_t i) { + batch_type tmp; + const size_t offset = i * batch; + const size_t current_batch_size = std::min(ctx.size - offset, batch); + jit_convert(src + offset, tmp, current_batch_size); // fp16 -> fp32 + for (size_t j = 0; j < current_batch_size; ++j) // fp32 -> dst_t + dst[offset + j] = static_cast(std::max(std::min(tmp[j], ubound), lbound)); + }); + } else { + parallel_for(iterations, [&](size_t i) { + batch_type tmp; + const size_t offset = i * batch; + const size_t current_batch_size = std::min(ctx.size - offset, batch); + jit_convert(src + offset, tmp, current_batch_size); // fp16 -> fp32 + for (size_t j = 0; j < current_batch_size; ++j) // fp32 -> dst_t + dst[offset + j] = static_cast(std::trunc(std::max(std::min(tmp[j], ubound), lbound))); + }); + } + + ctx.converted = true; + } +}; + +template<> +struct ConvertPrecision> { + void operator()(ConvertContext & ctx) { + auto src = static_cast(ctx.srcPtr); + auto dst = static_cast(ctx.dstPtr); + + constexpr size_t batch = 64; + const size_t iterations = MKLDNNPlugin::div_up(ctx.size, batch); + typedef float batch_type[batch]; + + float lbound, ubound; + std::tie(lbound, ubound) = ctx.range(); + + if (ctx.interimPrc.is_float()) { + cpu_memcpy(dst, src, ctx.size * sizeof(ov::float16)); + } else { + parallel_for(iterations, [&](size_t i) { + batch_type tmp; + const size_t offset = i * batch; + const size_t current_batch_size = std::min(ctx.size - offset, batch); + jit_convert(src + offset, tmp, current_batch_size); // fp16 -> fp32 + for (size_t j = 0; j < current_batch_size; ++j) // truncate fp32 + tmp[j] = std::trunc(std::max(std::min(tmp[j], ubound), lbound)); + jit_convert(tmp, dst + offset, current_batch_size); // fp32 -> fp16 + }); + } + + ctx.converted = true; + } +}; + +bool isConversionTruncatesRange(const Precision & from, const Precision & to) { + return to.bitsSize() < from.bitsSize() + || (from.is_float() && !to.is_float()) // float -> integral + || (from.isSigned() != to.isSigned()) // signed <-> unsigned + || (to == Precision::BOOL && from != to); // T -> bool +} + } // namespace #define MKLDNN_CVT(ST, DT) OV_CASE2(Precision::ST, Precision::DT, PrecisionInfo::value_type, PrecisionInfo::value_type) -void cpu_convert(const void *srcPtr, void *dstPtr, Precision srcPrc, Precision dstPrc, const size_t size) { - using namespace MKLDNNPlugin; +#define MKLDNN_CVT_LIST \ + MKLDNN_CVT(U8, I8), MKLDNN_CVT(U8, U16), MKLDNN_CVT(U8, I16), MKLDNN_CVT(U8, U32), \ + MKLDNN_CVT(U8, I32), MKLDNN_CVT(U8, U64), MKLDNN_CVT(U8, I64), MKLDNN_CVT(U8, FP32), \ + MKLDNN_CVT(U8, FP16), MKLDNN_CVT(U8, BF16), MKLDNN_CVT(U8, FP64), MKLDNN_CVT(U8, BOOL), \ + MKLDNN_CVT(I8, U8), MKLDNN_CVT(I8, U16), MKLDNN_CVT(I8, I16), MKLDNN_CVT(I8, U32), \ + MKLDNN_CVT(I8, I32), MKLDNN_CVT(I8, U64), MKLDNN_CVT(I8, I64), MKLDNN_CVT(I8, FP32), \ + MKLDNN_CVT(I8, FP16), MKLDNN_CVT(I8, BF16), MKLDNN_CVT(I8, FP64), MKLDNN_CVT(I8, BOOL), \ + MKLDNN_CVT(U16, U8), MKLDNN_CVT(U16, I8), MKLDNN_CVT(U16, I16), MKLDNN_CVT(U16, U32), \ + MKLDNN_CVT(U16, I32), MKLDNN_CVT(U16, U64), MKLDNN_CVT(U16, I64), MKLDNN_CVT(U16, FP32), \ + MKLDNN_CVT(U16, FP16), MKLDNN_CVT(U16, BF16), MKLDNN_CVT(U16, FP64), MKLDNN_CVT(U16, BOOL), \ + MKLDNN_CVT(I16, U8), MKLDNN_CVT(I16, I8), MKLDNN_CVT(I16, U16), MKLDNN_CVT(I16, U32), \ + MKLDNN_CVT(I16, I32), MKLDNN_CVT(I16, U64), MKLDNN_CVT(I16, I64), MKLDNN_CVT(I16, FP32), \ + MKLDNN_CVT(I16, FP16), MKLDNN_CVT(I16, BF16), MKLDNN_CVT(I16, FP64), MKLDNN_CVT(I16, BOOL), \ + MKLDNN_CVT(U32, U8), MKLDNN_CVT(U32, I8), MKLDNN_CVT(U32, U16), MKLDNN_CVT(U32, I16), \ + MKLDNN_CVT(U32, I32), MKLDNN_CVT(U32, U64), MKLDNN_CVT(U32, I64), MKLDNN_CVT(U32, FP32), \ + MKLDNN_CVT(U32, FP16), MKLDNN_CVT(U32, BF16), MKLDNN_CVT(U32, FP64), MKLDNN_CVT(U32, BOOL), \ + MKLDNN_CVT(I32, U8), MKLDNN_CVT(I32, I8), MKLDNN_CVT(I32, U16), MKLDNN_CVT(I32, I16), \ + MKLDNN_CVT(I32, U32), MKLDNN_CVT(I32, U64), MKLDNN_CVT(I32, I64), MKLDNN_CVT(I32, FP32), \ + MKLDNN_CVT(I32, FP16), MKLDNN_CVT(I32, BF16), MKLDNN_CVT(I32, FP64), MKLDNN_CVT(I32, BOOL), \ + MKLDNN_CVT(U64, U8), MKLDNN_CVT(U64, I8), MKLDNN_CVT(U64, U16), MKLDNN_CVT(U64, I16), \ + MKLDNN_CVT(U64, U32), MKLDNN_CVT(U64, I32), MKLDNN_CVT(U64, I64), MKLDNN_CVT(U64, FP32), \ + MKLDNN_CVT(U64, FP16), MKLDNN_CVT(U64, BF16), MKLDNN_CVT(U64, FP64), MKLDNN_CVT(U64, BOOL), \ + MKLDNN_CVT(I64, U8), MKLDNN_CVT(I64, I8), MKLDNN_CVT(I64, U16), MKLDNN_CVT(I64, I16), \ + MKLDNN_CVT(I64, U32), MKLDNN_CVT(I64, I32), MKLDNN_CVT(I64, U64), MKLDNN_CVT(I64, FP32), \ + MKLDNN_CVT(I64, FP16), MKLDNN_CVT(I64, BF16), MKLDNN_CVT(I64, FP64), MKLDNN_CVT(I64, BOOL), \ + MKLDNN_CVT(FP32, U8), MKLDNN_CVT(FP32, I8), MKLDNN_CVT(FP32, U16), MKLDNN_CVT(FP32, I16), \ + MKLDNN_CVT(FP32, U32), MKLDNN_CVT(FP32, I32), MKLDNN_CVT(FP32, U64), MKLDNN_CVT(FP32, I64), \ + MKLDNN_CVT(FP32, FP16), MKLDNN_CVT(FP32, BF16), MKLDNN_CVT(FP32, FP64), MKLDNN_CVT(FP32, BOOL), \ + MKLDNN_CVT(FP16, U8), MKLDNN_CVT(FP16, I8), MKLDNN_CVT(FP16, U16), MKLDNN_CVT(FP16, I16), \ + MKLDNN_CVT(FP16, U32), MKLDNN_CVT(FP16, I32), MKLDNN_CVT(FP16, U64), MKLDNN_CVT(FP16, I64), \ + MKLDNN_CVT(FP16, FP32), MKLDNN_CVT(FP16, BF16), MKLDNN_CVT(FP16, FP64), MKLDNN_CVT(FP16, BOOL), \ + MKLDNN_CVT(BF16, U8), MKLDNN_CVT(BF16, I8), MKLDNN_CVT(BF16, U16), MKLDNN_CVT(BF16, I16), \ + MKLDNN_CVT(BF16, U32), MKLDNN_CVT(BF16, I32), MKLDNN_CVT(BF16, U64), MKLDNN_CVT(BF16, I64), \ + MKLDNN_CVT(BF16, FP32), MKLDNN_CVT(BF16, FP16), MKLDNN_CVT(BF16, FP64), MKLDNN_CVT(BF16, BOOL), \ + MKLDNN_CVT(FP64, U8), MKLDNN_CVT(FP64, I8), MKLDNN_CVT(FP64, U16), MKLDNN_CVT(FP64, I16), \ + MKLDNN_CVT(FP64, U32), MKLDNN_CVT(FP64, I32), MKLDNN_CVT(FP64, U64), MKLDNN_CVT(FP64, I64), \ + MKLDNN_CVT(FP64, FP32), MKLDNN_CVT(FP64, FP16), MKLDNN_CVT(FP64, BF16), MKLDNN_CVT(FP64, BOOL), \ + MKLDNN_CVT(BOOL, U8), MKLDNN_CVT(BOOL, I8), MKLDNN_CVT(BOOL, U16), MKLDNN_CVT(BOOL, I16), \ + MKLDNN_CVT(BOOL, U32), MKLDNN_CVT(BOOL, I32), MKLDNN_CVT(BOOL, U64), MKLDNN_CVT(BOOL, I64), \ + MKLDNN_CVT(BOOL, FP32), MKLDNN_CVT(BOOL, FP16), MKLDNN_CVT(BOOL, BF16), MKLDNN_CVT(BOOL, FP64), \ + MKLDNN_CVT(U8, U8), MKLDNN_CVT(I8, I8), MKLDNN_CVT(U16, U16), MKLDNN_CVT(I16, I16), \ + MKLDNN_CVT(U32, U32), MKLDNN_CVT(I32, I32), MKLDNN_CVT(U64, U64), MKLDNN_CVT(I64, I64), \ + MKLDNN_CVT(FP32, FP32), MKLDNN_CVT(FP16, FP16), MKLDNN_CVT(BF16, BF16), MKLDNN_CVT(FP64, FP64), \ + MKLDNN_CVT(BOOL, BOOL) +void cpu_convert(const void *srcPtr, void *dstPtr, Precision srcPrc, Precision dstPrc, const size_t size) { + cpu_convert(srcPtr, dstPtr, srcPrc, dstPrc, dstPrc, size); +} + +void cpu_convert(const void *srcPtr, + void *dstPtr, + InferenceEngine::Precision srcPrc, + InferenceEngine::Precision interimPrc, + InferenceEngine::Precision dstPrc, + const size_t size) { if (srcPtr == nullptr || dstPtr == nullptr) IE_THROW() << "cpu_convert has null data pointer"; - if (srcPrc == dstPrc) { - cpu_memcpy(dstPtr, srcPtr, size*dstPrc.size()); - return; + if (srcPrc == dstPrc && srcPrc == interimPrc) { + cpu_memcpy(dstPtr, srcPtr, size * dstPrc.size()); + } else { + ConvertContext ctx = { + srcPtr, + dstPtr, + size, + interimPrc, + dstPrc, + false + }; + OV_SWITCH(MKLDNNPlugin, ConvertPrecision, ctx, std::tie(srcPrc, dstPrc), MKLDNN_CVT_LIST); + if (!ctx.converted) + IE_THROW() << "cpu_convert can't convert from: " << srcPrc << " precision to: " << dstPrc; } - - ConvertContext ctx = { srcPtr, dstPtr, size, false }; - - OV_SWITCH(MKLDNNPlugin, ConvertPrecision, ctx, std::tie(srcPrc, dstPrc), - MKLDNN_CVT(U8, I8), MKLDNN_CVT(U8, U16), MKLDNN_CVT(U8, I16), - MKLDNN_CVT(U8, I32), MKLDNN_CVT(U8, U64), MKLDNN_CVT(U8, I64), - MKLDNN_CVT(U8, FP32), MKLDNN_CVT(U8, BF16), MKLDNN_CVT(U8, BOOL), - MKLDNN_CVT(I8, U8), MKLDNN_CVT(I8, U16), MKLDNN_CVT(I8, I16), - MKLDNN_CVT(I8, I32), MKLDNN_CVT(I8, U64), MKLDNN_CVT(I8, I64), - MKLDNN_CVT(I8, FP32), MKLDNN_CVT(I8, BF16), MKLDNN_CVT(I8, BOOL), - MKLDNN_CVT(U16, U8), MKLDNN_CVT(U16, I8), MKLDNN_CVT(U16, I16), - MKLDNN_CVT(U16, I32), MKLDNN_CVT(U16, U64), MKLDNN_CVT(U16, I64), - MKLDNN_CVT(U16, FP32), MKLDNN_CVT(U16, BF16), MKLDNN_CVT(U16, BOOL), - MKLDNN_CVT(I16, U8), MKLDNN_CVT(I16, I8), MKLDNN_CVT(I16, U16), - MKLDNN_CVT(I16, I32), MKLDNN_CVT(I16, U64), MKLDNN_CVT(I16, I64), - MKLDNN_CVT(I16, FP32), MKLDNN_CVT(I16, BF16), MKLDNN_CVT(I16, BOOL), - MKLDNN_CVT(I32, U8), MKLDNN_CVT(I32, I8), MKLDNN_CVT(I32, U16), - MKLDNN_CVT(I32, I16), MKLDNN_CVT(I32, U64), MKLDNN_CVT(I32, I64), - MKLDNN_CVT(I32, FP32), MKLDNN_CVT(I32, BF16), MKLDNN_CVT(I32, BOOL), - MKLDNN_CVT(U64, U8), MKLDNN_CVT(U64, I8), MKLDNN_CVT(U64, U16), - MKLDNN_CVT(U64, I16), MKLDNN_CVT(U64, I32), MKLDNN_CVT(U64, I64), - MKLDNN_CVT(U64, FP32), MKLDNN_CVT(U64, BF16), MKLDNN_CVT(U64, BOOL), - MKLDNN_CVT(I64, U8), MKLDNN_CVT(I64, I8), MKLDNN_CVT(I64, U16), - MKLDNN_CVT(I64, I16), MKLDNN_CVT(I64, I32), MKLDNN_CVT(I64, U64), - MKLDNN_CVT(I64, FP32), MKLDNN_CVT(I64, BF16), MKLDNN_CVT(I64, BOOL), - MKLDNN_CVT(FP32, U8), MKLDNN_CVT(FP32, I8), MKLDNN_CVT(FP32, U16), - MKLDNN_CVT(FP32, I16), MKLDNN_CVT(FP32, I32), MKLDNN_CVT(FP32, U64), - MKLDNN_CVT(FP32, I64), MKLDNN_CVT(FP32, BF16), MKLDNN_CVT(FP32, BOOL), - MKLDNN_CVT(BF16, U8), MKLDNN_CVT(BF16, I8), MKLDNN_CVT(BF16, U16), - MKLDNN_CVT(BF16, I16), MKLDNN_CVT(BF16, I32), MKLDNN_CVT(BF16, U64), - MKLDNN_CVT(BF16, I64), MKLDNN_CVT(BF16, FP32), MKLDNN_CVT(BF16, BOOL), - MKLDNN_CVT(BOOL, U8), MKLDNN_CVT(BOOL, I8), MKLDNN_CVT(BOOL, U16), - MKLDNN_CVT(BOOL, I16), MKLDNN_CVT(BOOL, I32), MKLDNN_CVT(BOOL, U64), - MKLDNN_CVT(BOOL, I64), MKLDNN_CVT(BOOL, FP32), MKLDNN_CVT(BOOL, BF16), - MKLDNN_CVT(FP64, U8), MKLDNN_CVT(FP64, I8), MKLDNN_CVT(FP64, U16), - MKLDNN_CVT(FP64, I16), MKLDNN_CVT(FP64, I32), MKLDNN_CVT(FP64, U64), - MKLDNN_CVT(FP64, I64), MKLDNN_CVT(FP64, FP32), MKLDNN_CVT(FP64, BF16), MKLDNN_CVT(FP64, BOOL), - MKLDNN_CVT(U32, U8), MKLDNN_CVT(U32, I8), MKLDNN_CVT(U32, U16), - MKLDNN_CVT(U32, I16), MKLDNN_CVT(U32, I32), MKLDNN_CVT(U32, U64), - MKLDNN_CVT(U32, I64), MKLDNN_CVT(U32, FP32), MKLDNN_CVT(U32, BF16), MKLDNN_CVT(U32, BOOL)); - - if (!ctx.converted) - IE_THROW() << "cpu_convert can't convert from: " << srcPrc << " precision to: " << dstPrc; } #undef MKLDNN_CVT +#undef MKLDNN_CVT_LIST diff --git a/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.h b/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.h index dd4ef59a38b..8ed46cab7a0 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.h +++ b/inference-engine/src/mkldnn_plugin/nodes/common/cpu_convert.h @@ -19,5 +19,32 @@ * number of elements in buffers to be converted * @return none. */ +void cpu_convert(const void *srcPtr, + void *dstPtr, + InferenceEngine::Precision srcPrc, + InferenceEngine::Precision dstPrc, + const size_t size); -void cpu_convert(const void *srcPtr, void *dstPtr, InferenceEngine::Precision srcPrc, InferenceEngine::Precision dstPrc, const size_t size); +/** + * @brief Copy size elements from buffer specified srcPtr pointer to buffer specified dstPtr. + * If the precisions srcPrc and dstPrc are different, a conversion from srcPrc to dstPrc is performed. + * @param srcPtr + * pointer to the buffer to convert from + * @param dstPtr + * pointer to the buffer to convert to + * @param srcPrc + * precision the buffer from which convert + * @param interimPrc + * intermediate precision used for type truncation + * @param dstPrc + * precision the buffer to which convert + * @param size + * number of elements in buffers to be converted + * @return none. + */ +void cpu_convert(const void *srcPtr, + void *dstPtr, + InferenceEngine::Precision srcPrc, + InferenceEngine::Precision interimPrc, + InferenceEngine::Precision dstPrc, + const size_t size); diff --git a/inference-engine/src/mkldnn_plugin/nodes/common/dnnl_executor.cpp b/inference-engine/src/mkldnn_plugin/nodes/common/dnnl_executor.cpp new file mode 100644 index 00000000000..6f001fe8db1 --- /dev/null +++ b/inference-engine/src/mkldnn_plugin/nodes/common/dnnl_executor.cpp @@ -0,0 +1,45 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "dnnl_executor.h" + +using namespace mkldnn; +using namespace MKLDNNPlugin; + +DnnlExecutor::IntermReorder::IntermReorder(const mkldnn::memory::desc& descSrc, + const mkldnn::memory::desc& descDst, + const mkldnn::engine& engine) : m_descSrc(descSrc), m_descDst(descDst) { + auto reorderPd = mkldnn::reorder::primitive_desc(engine, descSrc, engine, descDst); + m_reorder = mkldnn::reorder(reorderPd); +} + +void DnnlExecutor::IntermReorder::exec(mkldnn::memory& memSrc, mkldnn::memory& memDst, mkldnn::stream strm) { + m_reorder.execute(strm, memSrc, memDst); +} + +void DnnlExecutor::exec(std::unordered_map primArgs, mkldnn::stream strm) { + for (auto &inReorder : inputReorders) { + if (primArgs.count(inReorder.first)) { + mkldnn::memory memDst(inReorder.second.getDstDesc(), strm.get_engine()); + inReorder.second.exec(primArgs[inReorder.first], memDst, strm); + primArgs[inReorder.first] = memDst; + } else { + IE_THROW() << "DnnlExecutor has reorder for input " << inReorder.first << ", but doesn't have source memory"; + } + } + std::unordered_map outputMem; + for (auto &outReorder : outputReorders) { + if (primArgs.count(outReorder.first)) { + mkldnn::memory memSrc(outReorder.second.getSrcDesc(), strm.get_engine()); + outputMem[outReorder.first] = primArgs[outReorder.first]; + primArgs[outReorder.first] = memSrc; + } else { + IE_THROW() << "DnnlExecutor has reorder for output " << outReorder.first << ", but doesn't have destination memory"; + } + } + (*execPrim).execute(strm, primArgs); + for (auto &outReorder : outputReorders) { + outReorder.second.exec(primArgs[outReorder.first], outputMem[outReorder.first], strm); + } +} diff --git a/inference-engine/src/mkldnn_plugin/nodes/common/dnnl_executor.h b/inference-engine/src/mkldnn_plugin/nodes/common/dnnl_executor.h new file mode 100644 index 00000000000..b6e6c83030d --- /dev/null +++ b/inference-engine/src/mkldnn_plugin/nodes/common/dnnl_executor.h @@ -0,0 +1,39 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include "mkldnn_memory.h" +#include "mkldnn_primitive.h" + +namespace MKLDNNPlugin { + +class DnnlExecutor { + protected: + class IntermReorder { + public: + IntermReorder(const mkldnn::memory::desc& descSrc, const mkldnn::memory::desc& descDst, const mkldnn::engine& engine); + void exec(mkldnn::memory& memSrc, mkldnn::memory& memDst, mkldnn::stream strm); + const mkldnn::memory::desc& getSrcDesc() const { return m_descSrc; } + const mkldnn::memory::desc& getDstDesc() const { return m_descDst; } + + private: + mkldnn::reorder m_reorder; + mkldnn::memory::desc m_descSrc; + mkldnn::memory::desc m_descDst; + }; + + public: + void exec(std::unordered_map primArgs, mkldnn::stream strm); + virtual ~DnnlExecutor() = default; + + protected: + DnnlExecutor() = default; + MKLDNNPrimitive execPrim; + // key is the port number for the primitive that needs memory reordering + std::unordered_map inputReorders; + std::unordered_map outputReorders; +}; + +} // namespace MKLDNNPlugin diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.cpp index 64ed60cbdb9..0909f99deb2 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.cpp @@ -145,6 +145,10 @@ void MKLDNNAdaptivePoolingNode::initSupportedPrimitiveDescriptors() { } } +void MKLDNNAdaptivePoolingNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNAdaptivePoolingNode::execute(mkldnn::stream strm) { auto inputPrec = getParentEdgeAt(0)->getMemory().GetDataType(); auto outputPrec = getChildEdgeAt(0)->getMemory().GetDataType(); @@ -283,8 +287,6 @@ bool MKLDNNAdaptivePoolingNode::created() const { return getType() == AdaptivePooling; } -void MKLDNNAdaptivePoolingNode::createPrimitive() {} - inline void MKLDNNAdaptivePoolingNode::setBinBorders(size_t *startPtr, size_t *endPtr, size_t idx, size_t inputLength, size_t outputLength) { *(startPtr) = idx * inputLength / outputLength; *(endPtr) = ceil(static_cast((idx + 1) * inputLength) / outputLength); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.h index c47740e75ec..88a3e9a9324 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_adaptive_pooling.h @@ -18,7 +18,6 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; @@ -36,7 +35,7 @@ protected: bool needShapeInfer() const override; std::vector shapeInfer() const override; bool needPrepareParams() const override { return false; }; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; }; } // namespace MKLDNNPlugin diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.cpp index a4811c30aff..60a37375cdc 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.cpp @@ -225,6 +225,10 @@ void MKLDNNBatchToSpaceNode::batchToSpaceKernel() { }); } +void MKLDNNBatchToSpaceNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNBatchToSpaceNode::execute(mkldnn::stream strm) { switch (getParentEdgeAt(0)->getMemory().getDesc().getPrecision().size()) { case 1: batchToSpaceKernel::value_type>(); break; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.h index 0c0ef5ee06c..91fe87e4f71 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_batch_to_space_node.h @@ -18,12 +18,11 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override {}; void execute(mkldnn::stream strm) override; bool created() const override; bool needPrepareParams() const override { return false; }; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.cpp index 898c03f9b40..eba9e00666f 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.cpp @@ -107,14 +107,6 @@ void MKLDNNBroadcastNode::initSupportedPrimitiveDescriptors() { supportedPrimitiveDescriptors = getSupportedConfigs(this); } -void MKLDNNBroadcastNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - bool MKLDNNBroadcastNode::needPrepareParams() const { return needPrepareParamsVar; } @@ -215,6 +207,14 @@ std::vector MKLDNNBroadcastNode::shapeInfer() const { return newOutputShapes; } +bool MKLDNNBroadcastNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0); +} + +void MKLDNNBroadcastNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNBroadcastNode::execute(mkldnn::stream strm) { if (optimizedCase) { optimizedExecute(getParentEdgeAt(INPUT_DATA_IDX)->getMemoryPtr(), getChildEdgeAt(0)->getMemoryPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.h index 4851cf19c9a..93cbddb0b45 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_broadcast_node.h @@ -19,13 +19,11 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; - void executeDynamicImpl(mkldnn::stream strm) override { - execute(strm); - } + void executeDynamicImpl(mkldnn::stream strm) override; bool created() const override; + bool isExecutable() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; protected: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.cpp index 86e29b292cb..d875d228191 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.cpp @@ -203,12 +203,8 @@ void MKLDNNBucketizeNode::prepareParams() { std::accumulate(input_tensor_dims.begin(), input_tensor_dims.end(), size_t(1), std::multiplies()); } -void MKLDNNBucketizeNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } +bool MKLDNNBucketizeNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0); } std::vector MKLDNNBucketizeNode::shapeInfer() const { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.h index ae4a4030bfd..04f0b0df3f0 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_bucketize_node.h @@ -15,15 +15,16 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void prepareParams() override; std::vector shapeInfer() const override; + bool isExecutable() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.cpp index 3b0e1e481c8..a6e044b4353 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.cpp @@ -31,6 +31,10 @@ namespace { constexpr size_t channelAxis = 1lu; } +bool MKLDNNConcatNode::isExecutable() const { + return !hasEmptyOutputTensors() && !isOptimized(); +} + bool MKLDNNConcatNode::isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept { try { const auto concatOp = ngraph::as_type_ptr(op); @@ -173,7 +177,7 @@ void MKLDNNConcatNode::initSupportedPrimitiveDescriptors() { } // TODO [DS]: inplace - if (!canBeInPlace) + if (!canBeInPlace || std::any_of(inputShapes.begin(), inputShapes.end(), [](const Shape& shape) { return shape.hasZeroDims(); })) return; // Optimized inplace case @@ -353,7 +357,6 @@ void MKLDNNConcatNode::prepareParams() { IE_THROW() << "Preferable primitive descriptor is not set."; std::vector srcs_d; - for (size_t i = 0; i < getParentEdges().size(); i++) { const auto& srcMemPtr = getParentEdgesAtPort(i)[0]->getMemoryPtr(); if (!srcMemPtr || !srcMemPtr->GetPrimitivePtr()) { @@ -362,6 +365,10 @@ void MKLDNNConcatNode::prepareParams() { << getName() << "."; } + if (srcMemPtr->GetShape().hasZeroDims()) { + continue; + } + auto desc = srcMemPtr->GetDescWithType()->getDnnlDesc(); const auto& dims = srcMemPtr->getStaticDims(); for (size_t j = 0; j < dims.size(); j++) { @@ -382,14 +389,6 @@ void MKLDNNConcatNode::prepareParams() { prim.reset(new concat(primitive_desc)); } -void MKLDNNConcatNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - size_t MKLDNNConcatNode::inverseOrder(const SizeVector& order, size_t axis) { for (size_t i = 0; i < order.size(); i++) { if (axis == order[i]) { @@ -489,16 +488,23 @@ void MKLDNNConcatNode::execute(mkldnn::stream strm) { return; } + const MKLDNNMemory& dst_memory = getChildEdgeAt(0)->getMemory(); if (canOptimizeNspc) { execNspcSpecCase(); return; } - const MKLDNNMemory& dst_memory = getChildEdgeAt(0)->getMemory(); const size_t num_src = getParentEdges().size(); std::unordered_map mem_ags {{DNNL_ARG_DST, dst_memory.GetPrimitive()}}; - for (int i = 0; i < num_src; i++) - mem_ags[DNNL_ARG_MULTIPLE_SRC + i] = getParentEdgeAt(i)->getMemory().GetPrimitive(); + size_t nonZeroInShapes = 0; + for (int i = 0; i < num_src; i++) { + const auto& srcMem = getParentEdgesAtPort(i)[0]->getMemory(); + if (srcMem.GetShape().hasZeroDims()) { + continue; + } + mem_ags[DNNL_ARG_MULTIPLE_SRC + nonZeroInShapes] = srcMem.GetPrimitive(); + nonZeroInShapes++; + } (*prim).execute(strm, mem_ags); } @@ -518,21 +524,32 @@ void MKLDNNConcatNode::execNspcSpecCase() { std::vector src_ptrs; std::vector dst_ptrs; + size_t nonZeroInShapes = 0; + int firstNonZeroEdge = -1; for (size_t i = 0; i < num_src; i++) { - const MKLDNNMemory& src_mem = getParentEdgeAt(i)->getMemory(); + const MKLDNNMemory& src_mem = getParentEdgesAtPort(i)[0]->getMemory(); + if (src_mem.GetShape().hasZeroDims()) { + continue; + } const size_t num_channels = src_mem.getStaticDims()[channelAxis]; channelsDataSize.push_back(num_channels * dataSize); src_ptrs.push_back(reinterpret_cast(src_mem.GetData())); dst_ptrs.push_back(dst_ptr + channels_size); channels_size += num_channels * dataSize; + + if (firstNonZeroEdge == -1) { + firstNonZeroEdge = i; + } + + nonZeroInShapes++; } - const size_t iter_count = getParentEdgeAt(0)->getMemory().GetSize() / channelsDataSize[0]; + const size_t iter_count = getParentEdgeAt(firstNonZeroEdge)->getMemory().GetSize() / channelsDataSize[0]; parallel_for(iter_count, [&](int i) { const size_t dst_off = i * channels_size; - for (int j = 0; j < num_src; j++) { + for (int j = 0; j < nonZeroInShapes; j++) { cpu_memcpy(dst_ptrs[j] + dst_off, src_ptrs[j] + i * channelsDataSize[j], channelsDataSize[j]); } }); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.h index 09686ca5f24..5e51f9c8a6e 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_concat_node.h @@ -19,7 +19,6 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; void initOptimalPrimitiveDescriptor() override; - void createPrimitive() override; void selectOptimalPrimitiveDescriptor() override; bool created() const override; void execute(mkldnn::stream strm) override; @@ -28,10 +27,8 @@ public: bool isOptimized() const; InferenceEngine::Precision getRuntimePrecision() const override; - bool isExecutable() const override { - return !isOptimized(); - } + bool isExecutable() const override; bool needPrepareParams() const override; void prepareParams() override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.cpp index 6132525193e..6e46b42b4a8 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.cpp @@ -330,48 +330,42 @@ void MKLDNNConvolutionNode::getSupportedDescriptors() { } } -void MKLDNNConvolutionNode::setPostOps(mkldnn::primitive_attr &attr, const VectorDims &dims, bool initWeights = false, bool initAsBinary = false) { - bool initBinaryMemory = initWeights; +void MKLDNNConvolutionNode::setPostOps(mkldnn::primitive_attr &attr, const VectorDims &dims, bool initWeights = false) { mkldnn::post_ops ops; + bool useLegacyPostOps = true; // @todo remove after issue with performance of binary post ops fixed + + auto getBinPostOpShape = [&](){ + const auto outShape = getOutputShapeAtPort(0).getStaticDims(); + const auto outShapeRank = getOutputShapeAtPort(0).getRank(); + const auto chIdx = getFusingAxis(); + std::vector binaryShape(outShapeRank, 1); + binaryShape[chIdx] = outShape[chIdx]; + return binaryShape; + }; for (auto &node : fusedWith) { if (node->getType() == Split || node->getType() == Concatenation) continue; - auto* eltwiseNode = dynamic_cast(node.get()); - if (eltwiseNode) { + if (auto* eltwiseNode = dynamic_cast(node.get())) { if (eltwiseNode->isSpecialConvolutionAddFusing()) { ops.append_sum(1.0, MKLDNNExtensionUtils::IEPrecisionToDataType(eltwisePrecision)); } else { - constexpr int align = 16; - eltwiseNode->appendPostOps(ops, dims, align, initAsBinary, initBinaryMemory); - if (initBinaryMemory) { - if (eltwiseNode->scalesMemory) - binaryPostOpsArgs.push_back(eltwiseNode->scalesMemory->GetPrimitive()); - if (eltwiseNode->shiftsMemory) - binaryPostOpsArgs.push_back(eltwiseNode->shiftsMemory->GetPrimitive()); + if (useLegacyPostOps || eltwiseNode->getMKLDNNAlgorithm() != mkldnn::algorithm::undef) { + constexpr int align = 16; + eltwiseNode->appendPostOps(ops, dims, align); + } else { + eltwiseNode->appendBinPostOps(ops, getBinPostOpShape(), binaryPostOpsArgs); } } continue; } - auto* fakeQuantizeNode = dynamic_cast(node.get()); - if (fakeQuantizeNode) { - constexpr int align = -1; - fakeQuantizeNode->appendPostOps(ops, dims, align, initAsBinary, initBinaryMemory); - if (initBinaryMemory) { - if (fakeQuantizeNode->cropHighMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->cropHighMemory->GetPrimitive()); - if (fakeQuantizeNode->cropLowMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->cropLowMemory->GetPrimitive()); - if (fakeQuantizeNode->inputScaleMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->inputScaleMemory->GetPrimitive()); - if (fakeQuantizeNode->inputShiftMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->inputShiftMemory->GetPrimitive()); - if (fakeQuantizeNode->outputScaleMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->outputScaleMemory->GetPrimitive()); - if (fakeQuantizeNode->outputShiftMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->outputShiftMemory->GetPrimitive()); + if (auto* fakeQuantizeNode = dynamic_cast(node.get())) { + if (useLegacyPostOps) { + fakeQuantizeNode->appendPostOps(ops, dims); + } else { + fakeQuantizeNode->appendBinPostOps(ops, getBinPostOpShape(), binaryPostOpsArgs); } continue; } @@ -416,7 +410,6 @@ void MKLDNNConvolutionNode::initSupportedPrimitiveDescriptors() { // attr[1] - binary mkldnn::primitive_attr attrs[1]; setPostOps(attrs[0], MemoryDescUtils::makeDummyShape(getOutputShapeAtPort(0)).getStaticDims()); -// setPostOps(attrs[1], MemoryDescUtils::makeDummyShape(getOutputShapeAtPort(0)).getStaticDims(), false, true); bool containJitImpl = false; @@ -494,15 +487,6 @@ void MKLDNNConvolutionNode::initSupportedPrimitiveDescriptors() { } } - -void MKLDNNConvolutionNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - bool MKLDNNConvolutionNode::created() const { return getType() == Convolution; } @@ -552,7 +536,14 @@ MKLDNNConvolutionNode::createDescriptorInternal(const mkldnn::memory::desc& inpu void MKLDNNConvolutionNode::createDescriptor(const std::vector& inputDesc, const std::vector& outputDesc) { - auto inpDesc = inputDesc[0]->isDefined() ? inputDesc[0] : MemoryDescUtils::makeDummyDesc(*inputDesc[0]); + MemoryDescPtr inpDesc; + if (inputDesc[0]->isDefined()) { + inpDesc = inputDesc[0]; + } else { + auto dummyInDims = MemoryDescUtils::makeDummyShape(inputDesc[0]->getShape()).getStaticDims(); + dummyInDims[1] = IC; + inpDesc = inputDesc[0]->cloneWithNewDims(dummyInDims); + } DnnlMemoryDescPtr definedInpMemDesc = MemoryDescUtils::convertToDnnlMemoryDesc(inpDesc); DnnlMemoryDescPtr definedOutMemDesc; @@ -630,7 +621,6 @@ void MKLDNNConvolutionNode::initDescriptor(const NodeConfig& config) { // attr[1] - binary mkldnn::primitive_attr attrs[1]; setPostOps(attrs[0], MemoryDescUtils::makeDummyShape(getOutputShapeAtPort(0)).getStaticDims()); -// setPostOps(attrs[1], false, true); auto rightConfig = selectedPD->getConfig(); size_t selected_count = 0; @@ -914,25 +904,63 @@ InferenceEngine::Blob::Ptr MKLDNNConvolutionNode::createInternalBlob(InferenceEn return internalBlob; } +std::shared_ptr MKLDNNConvolutionNode::createMkldnnConvDesc(const mkldnn::memory::desc& srcDesc, + const mkldnn::memory::desc& wghDesc, + const mkldnn::memory::desc& dstDesc, + const mkldnn::memory::desc& biasDesc) { + std::shared_ptr dnnlConvDesc; + auto alg = isWinograd() ? mkldnn::algorithm::convolution_winograd : mkldnn::algorithm::convolution_direct; + + if (withBiases) { + // WA to align IR bias representation (3 to 5 rank tensors) to oneDNN representation (1 rank tensor) + mkldnn::memory::desc dnnlBiasDesc = biasDesc.reshape(MKLDNNExtensionUtils::convertToDnnlDims(biasesDims)); + return std::make_shared(createDescriptorInternal(srcDesc, + wghDesc, + dnnlBiasDesc, + dstDesc, + alg)); + } else { + return std::make_shared(createDescriptorInternal(srcDesc, + wghDesc, + dstDesc, + alg)); + } +} + void MKLDNNConvolutionNode::prepareParams() { + auto srcMemPtr = getParentEdgesAtPort(0)[0]->getMemoryPtr(); + auto wghMemPtr = getParentEdgesAtPort(1)[0]->getMemoryPtr(); + auto dstMemPtr = getChildEdgesAtPort(0)[0]->getMemoryPtr(); + if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) + IE_THROW() << "Destination memory didn't allocate."; + if (!srcMemPtr || !srcMemPtr->GetPrimitivePtr()) + IE_THROW() << "Input memory didn't allocate."; + if (!wghMemPtr || !wghMemPtr->GetPrimitivePtr()) + IE_THROW() << "Weight memory didn't allocate."; + MKLDNNMemoryPtr biasMemPtr = nullptr; + if (withBiases) { + biasMemPtr = getParentEdgesAtPort(2)[0]->getMemoryPtr(); + if (!biasMemPtr || !biasMemPtr->GetPrimitivePtr()) + IE_THROW() << "Input memory didn't allocate."; + } + const NodeDesc *selected_pd = getSelectedPrimitiveDescriptor(); if (selected_pd == nullptr) IE_THROW() << "Preferable primitive descriptor is not set for node " << getName() << "."; - auto inMemoryDesc = getParentEdgesAtPort(0).front()->getMemory().GetDescWithType(); - auto weightMemoryDesc = getParentEdgesAtPort(1).front()->getMemory().GetDescWithType(); - auto outMemoryDesc = getChildEdgesAtPort(0).front()->getMemory().GetDescWithType(); + auto inMemoryDesc = srcMemPtr->GetDescWithType(); + auto weightMemoryDesc = wghMemPtr->GetDescWithType(); + auto outMemoryDesc = dstMemPtr->GetDescWithType(); + mkldnn::memory::desc biasDesc; + if (biasMemPtr) { + biasDesc = biasMemPtr->GetDescWithType()->getDnnlDesc(); + } auto initPrimitiveAttr = [&]() { mkldnn::primitive_attr attr; addZeroPoints(attr); + setPostOps(attr, outMemoryDesc->getShape().getStaticDims(), true); - // todo: [AV] delete "false" to use binary mechanism - if (false && getSelectedPrimitiveDescriptor()->getImplementationType() == jit_gemm) { - setPostOps(attr, outMemoryDesc->getShape().getStaticDims(), true, true); - } else { - setPostOps(attr, outMemoryDesc->getShape().getStaticDims(), true); - } return std::make_shared(std::move(attr)); }; @@ -947,61 +975,95 @@ void MKLDNNConvolutionNode::prepareParams() { pAttrLocal = initPrimitiveAttr(); } - std::shared_ptr dnnlConvDesc; - auto alg = isWinograd() ? mkldnn::algorithm::convolution_winograd : mkldnn::algorithm::convolution_direct; + std::shared_ptr desc = createMkldnnConvDesc(inMemoryDesc->getDnnlDesc(), + weightMemoryDesc->getDnnlDesc(), + outMemoryDesc->getDnnlDesc(), + biasDesc); - if (withBiases) { - auto biasMemoryDesc = getParentEdgesAtPort(2).front()->getMemory().GetDescWithType(); - // WA to align IR bias representation (3 to 5 rank tensors) to oneDNN representation (1 rank tensor) - mkldnn::memory::desc dnnlBiasDesc = biasMemoryDesc->getDnnlDesc().reshape(MKLDNNExtensionUtils::convertToDnnlDims(biasesDims)); - dnnlConvDesc = createDescriptorInternal(inMemoryDesc->getDnnlDesc(), - weightMemoryDesc->getDnnlDesc(), - dnnlBiasDesc, - outMemoryDesc->getDnnlDesc(), - alg); - } else { - dnnlConvDesc = createDescriptorInternal(inMemoryDesc->getDnnlDesc(), - weightMemoryDesc->getDnnlDesc(), - outMemoryDesc->getDnnlDesc(), - alg); - } - - MKLDNNDescriptor desc(dnnlConvDesc); - - auto itpd = desc.createPrimitiveDescriptorIterator(getEngine(), *pAttrLocal); + auto itpd = desc->createPrimitiveDescriptorIterator(getEngine(), *pAttrLocal); convolution_forward::primitive_desc prim_desc; - while (static_cast(itpd)) { + + execPtr = nullptr; + while (static_cast(itpd)) { impl_desc_type impl_type = parse_impl_name(itpd.impl_info_str()); if (impl_type == selected_pd->getImplementationType()) { prim_desc = convolution_forward::primitive_desc(itpd.get()); + execPtr = std::make_shared(prim_desc, + srcMemPtr->GetPrimitive().get_desc(), + wghMemPtr->GetPrimitive().get_desc(), + dstMemPtr->GetPrimitive().get_desc(), + getEngine()); break; } - if (!itpd.next_impl()) - IE_THROW() << "Primitive descriptor was not found for node " << getName() << "."; + + if (!itpd.next_impl()) { + auto inDesc = mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(srcMemPtr->getStaticDims()), + srcMemPtr->GetDataType(), + memory::format_tag::any); + auto wghDesc = mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(wghMemPtr->getStaticDims()), + wghMemPtr->GetDataType(), + memory::format_tag::any); + auto outDesc = mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(dstMemPtr->getStaticDims()), + dstMemPtr->GetDataType(), + memory::format_tag::any); + + std::shared_ptr reorderConvDesc = createMkldnnConvDesc(inDesc, wghDesc, outDesc, biasDesc); + auto reordItpd = reorderConvDesc->createPrimitiveDescriptorIterator(getEngine(), *pAttrLocal); + if (static_cast(reordItpd)) { + auto prim_desc = convolution_forward::primitive_desc(reordItpd.get()); + execPtr = std::make_shared(prim_desc, srcMemPtr->GetPrimitive().get_desc(), + wghMemPtr->GetPrimitive().get_desc(), + dstMemPtr->GetPrimitive().get_desc(), + getEngine()); + break; + } + } } + if (execPtr) { + primArgs[DNNL_ARG_SRC] = srcMemPtr->GetPrimitive(); + primArgs[DNNL_ARG_WEIGHTS] = wghMemPtr->GetPrimitive(); + primArgs[DNNL_ARG_DST] = dstMemPtr->GetPrimitive(); - prim.reset(new convolution_forward(prim_desc)); + if (withBiases) { + primArgs[DNNL_ARG_BIAS] = biasMemPtr->GetPrimitive(); + } - primArgs[DNNL_ARG_SRC] = getParentEdgesAtPort(0)[0]->getMemoryPtr()->GetPrimitive(); - primArgs[DNNL_ARG_WEIGHTS] = getWeights(); - primArgs[DNNL_ARG_DST] = getChildEdgesAtPort(0)[0]->getMemoryPtr()->GetPrimitive(); - - if (withBiases) { - primArgs[DNNL_ARG_BIAS] = getBias(); + MKLDNNNode::appendPostOpArgs(*pAttrLocal, primArgs, binaryPostOpsArgs); + } else { + IE_THROW() << "Primitive descriptor was not found for node " << getName() << "."; } -// todo: [AV] uncomment to use binary mechanism -// auto post_ops = attr.get_post_ops(); -// int idx = 0; -// for (int i = 0; i < post_ops.len(); i++) { -// if (post_ops.kind(i) == mkldnn::primitive::kind::binary) { -// primArgs.insert({DNNL_ARG_ATTR_MULTIPLE_POST_OP(i) | DNNL_ARG_SRC_1, binaryPostOpsArgs[idx++]}); -// } -// } } -void MKLDNNConvolutionNode::executeDynamicImpl(dnnl::stream strm) { +MKLDNNConvolutionNode::ConvolutionExecutor::ConvolutionExecutor(const mkldnn::convolution_forward::primitive_desc& pd, + const mkldnn::memory::desc& inMemDesc, + const mkldnn::memory::desc& weightMemDesc, + const mkldnn::memory::desc& outMemDesc, + const mkldnn::engine& engine) { + execPrim.reset(new mkldnn::convolution_forward(pd)); + + if (inMemDesc != pd.src_desc()) { + inputReorders.insert({DNNL_ARG_SRC, IntermReorder(inMemDesc, pd.src_desc(), engine)}); + } + + if (weightMemDesc != pd.weights_desc()) { + inputReorders.insert({DNNL_ARG_WEIGHTS, IntermReorder(weightMemDesc, pd.weights_desc(), engine)}); + } + + if (outMemDesc != pd.dst_desc()) { + outputReorders.insert({DNNL_ARG_DST, IntermReorder(pd.dst_desc(), outMemDesc, engine)}); + } +} + +void MKLDNNConvolutionNode::execute(mkldnn::stream strm) { + if (!execPtr) { + IE_THROW() << "Can't execute Convolution node with name: " << getName() << ", because executor is not compiled"; + } + execPtr->exec(primArgs, strm); +} + +void MKLDNNConvolutionNode::executeDynamicImpl(mkldnn::stream strm) { execute(strm); } diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.h index 39ef625f503..f70fd806617 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_conv_node.h @@ -9,6 +9,7 @@ #include #include #include +#include "common/dnnl_executor.h" namespace MKLDNNPlugin { @@ -23,7 +24,6 @@ public: void createDescriptor(const std::vector& inputDesc, const std::vector& outputDesc) override; void initDescriptor(const NodeConfig& config) override; - void createPrimitive() override; void selectOptimalPrimitiveDescriptor() override; void initSupportedPrimitiveDescriptors() override; void filterSupportedPrimitiveDescriptors() override; @@ -65,11 +65,29 @@ protected: InferenceEngine::Precision fusedEltwisePrecision(const MKLDNNNodePtr& fusingNode) const; private: + using executorPtr = std::shared_ptr; + executorPtr execPtr = nullptr; + + class ConvolutionExecutor : public DnnlExecutor { + public: + ConvolutionExecutor(const mkldnn::convolution_forward::primitive_desc& pd, + const mkldnn::memory::desc& inMemDesc, + const mkldnn::memory::desc& weightMemDesc, + const mkldnn::memory::desc& outMemDesc, + const mkldnn::engine& engine); + }; + + std::shared_ptr createMkldnnConvDesc(const mkldnn::memory::desc& srcDesc, + const mkldnn::memory::desc& wghDesc, + const mkldnn::memory::desc& dstDesc, + const mkldnn::memory::desc& biasDesc); + void prepareParams() override; + void execute(mkldnn::stream strm) override; void executeDynamicImpl(mkldnn::stream strm) override; void addZeroPoints(mkldnn::primitive_attr& attr) const; - void setPostOps(mkldnn::primitive_attr &attr, const VectorDims &dims, bool initWeights, bool initAsBinary); + void setPostOps(mkldnn::primitive_attr &attr, const VectorDims &dims, bool initWeights); void filterSupportedDescriptors(); bool isPossibleToSkipInitConfig(MKLDNNDescriptor &desc) const; bool isNspcAvailable() const; @@ -122,4 +140,3 @@ private: }; } // namespace MKLDNNPlugin - diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.cpp index 2faf969c1ea..00150f7eba4 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.cpp @@ -7,7 +7,8 @@ #include "common/cpu_convert.h" #include "common/blocked_desc_creator.h" #include -#include "utils/ngraph_utils.hpp" +#include +#include using namespace mkldnn; using namespace MKLDNNPlugin; @@ -26,14 +27,17 @@ bool MKLDNNConvertNode::isSupportedOperation(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache) : - MKLDNNNode(op, eng, cache) { +MKLDNNConvertNode::MKLDNNConvertNode(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache) + : MKLDNNNode(op, eng, cache) { std::string errorMessage; if (isSupportedOperation(op, errorMessage)) { errorPrefix = "Convert node with name '" + getName() + "'"; } else { IE_THROW(NotImplemented) << errorMessage; } + + auto convert = ov::as_type_ptr(op); + origPrc = details::convertPrecision(convert->get_destination_type()); } std::vector MKLDNNConvertNode::shapeInfer() const { @@ -42,7 +46,8 @@ std::vector MKLDNNConvertNode::shapeInfer() const { MKLDNNConvertNode::MKLDNNConvertNode(const Shape &shape, const InferenceEngine::Precision &inPrc, const InferenceEngine::Precision &outPrc, const std::string &nodeName, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache) - : MKLDNNNode("Convert", nodeName, eng, cache) { + : MKLDNNNode("Convert", nodeName, eng, cache) + , origPrc(outPrc) { inputShapes.push_back(shape); addOriginalInputPrecision(inPrc); outputShapes.push_back(shape); @@ -124,15 +129,8 @@ void MKLDNNConvertNode::initSupportedPrimitiveDescriptors() { } } -void MKLDNNConvertNode::createPrimitive() { - auto& dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); - auto& srcMemPtr = getParentEdgeAt(0)->getMemoryPtr(); - if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) - IE_THROW() << errorPrefix << " has not allocated destination memory"; - if (!srcMemPtr || !srcMemPtr->GetPrimitivePtr()) - IE_THROW() << errorPrefix << " has not allocated input memory"; - if (getSelectedPrimitiveDescriptor() == nullptr) - IE_THROW() << errorPrefix << " has nullable preferable primitive descriptor"; +void MKLDNNConvertNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); } void MKLDNNConvertNode::execute(mkldnn::stream strm) { @@ -147,7 +145,13 @@ void MKLDNNConvertNode::execute(mkldnn::stream strm) { void* srcPtr = parentMem.GetPtr(); void* dstPtr = childMem.GetPtr(); - cpu_convert(srcPtr, dstPtr, parentMem.getDesc().getPrecision(), childMem.getDesc().getPrecision(), parentPaddElemCount); + + cpu_convert(srcPtr, + dstPtr, + parentMem.getDesc().getPrecision(), + origPrc, + childMem.getDesc().getPrecision(), + parentPaddElemCount); } bool MKLDNNConvertNode::created() const { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.h index bffb2447280..b345259fa5f 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_convert_node.h @@ -19,9 +19,8 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; bool created() const override; bool canBeInPlace() const override { return false; @@ -49,6 +48,7 @@ public: private: MemoryDescPtr input; MemoryDescPtr output; + InferenceEngine::Precision origPrc; std::string errorPrefix; }; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.cpp index b6881da496f..33b3859cc06 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.cpp @@ -165,14 +165,8 @@ bool MKLDNNCTCGreedyDecoderNode::created() const { return getType() == CTCGreedyDecoder; } -void MKLDNNCTCGreedyDecoderNode::executeDynamicImpl(dnnl::stream strm) { - MKLDNNCTCGreedyDecoderNode::execute(strm); -} - -void MKLDNNCTCGreedyDecoderNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } +void MKLDNNCTCGreedyDecoderNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); } bool MKLDNNCTCGreedyDecoderNode::needPrepareParams() const { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.h index a936d47d75d..84da43a9e5a 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_node.h @@ -15,7 +15,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; void executeDynamicImpl(dnnl::stream strm) override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.cpp index 81e94cee450..e9de4e7d5fd 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.cpp @@ -168,14 +168,8 @@ bool MKLDNNCTCGreedyDecoderSeqLenNode::created() const { return getType() == CTCGreedyDecoderSeqLen; } -void MKLDNNCTCGreedyDecoderSeqLenNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } -} - -void MKLDNNCTCGreedyDecoderSeqLenNode::executeDynamicImpl(dnnl::stream strm) { - MKLDNNCTCGreedyDecoderSeqLenNode::execute(strm); +void MKLDNNCTCGreedyDecoderSeqLenNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); } bool MKLDNNCTCGreedyDecoderSeqLenNode::needPrepareParams() const { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.h index 023a9e8f409..6d997ae600d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_greedy_decoder_seq_len_node.h @@ -15,7 +15,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; void executeDynamicImpl(dnnl::stream strm) override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.cpp index 3019cf20e86..0647f235155 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.cpp @@ -57,12 +57,8 @@ void MKLDNNCTCLossNode::initSupportedPrimitiveDescriptors() { impl_desc_type::ref_any); } -void MKLDNNCTCLossNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } +void MKLDNNCTCLossNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); } void MKLDNNCTCLossNode::execute(mkldnn::stream strm) { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.h index b37f4500f3e..65df24e6457 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_ctc_loss_node.h @@ -15,13 +15,12 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; bool needPrepareParams() const override { return false; }; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.cpp index 68fd40d9a56..0613f10cb70 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.cpp @@ -12,6 +12,7 @@ #include "ie_precision.hpp" #include #include "mkldnn_cum_sum_node.h" +#include "utils/bfloat16.hpp" using namespace MKLDNNPlugin; using namespace InferenceEngine; @@ -70,8 +71,7 @@ void MKLDNNCumSumNode::initSupportedPrimitiveDescriptors() { return; dataPrecision = getOriginalInputPrecisionAtPort(CUM_SUM_DATA); - if (dataPrecision != Precision::I8 && dataPrecision != Precision::U8 && dataPrecision != Precision::I16 && dataPrecision != Precision::I32 && - dataPrecision != Precision::FP32 && dataPrecision != Precision::I64 && dataPrecision != Precision::U64 && dataPrecision != Precision::BF16) + if (!one_of(dataPrecision, Precision::I8, Precision::U8, Precision::I16, Precision::BF16, Precision::I32, Precision::FP32, Precision::I64, Precision::U64)) IE_THROW() << errorPrefix << " has unsupported 'data' input precision: " << dataPrecision.name(); if (inputShapes.size() == numOfInputs) { @@ -95,43 +95,17 @@ void MKLDNNCumSumNode::execute(mkldnn::stream strm) { if (inputShapes.size() == numOfInputs) axis = getAxis(getParentEdgeAt(AXIS)->getMemory(), getParentEdgeAt(CUM_SUM_DATA)->getMemory()); - switch (dataPrecision) { - case Precision::I8 : { - exec(); - break; - } - case Precision::U8 : { - exec(); - break; - } - case Precision::I16 : { - exec(); - break; - } - case Precision::I32 : { - exec(); - break; - } - case Precision::FP32 : { - exec(); - break; - } - case Precision::I64 : { - exec(); - break; - } - case Precision::U64 : { - exec(); - break; - } - default : { - std::string errorMsg = errorPrefix + " has unsupported 'data' input precision: " + dataPrecision.name(); - IE_THROW() << errorMsg; - } - } + OV_SWITCH(MKLDNNPlugin, CumSumExecute, this, dataPrecision, + OV_CASE(Precision::I8, int8_t), + OV_CASE(Precision::U8, uint8_t), + OV_CASE(Precision::I16, int16_t), + OV_CASE(Precision::BF16, bfloat16_t), + OV_CASE(Precision::I32, int32_t), + OV_CASE(Precision::FP32, float), + OV_CASE(Precision::I64, int64_t), + OV_CASE(Precision::U64, uint64_t)) } - template void MKLDNNCumSumNode::exec() { const auto *input = reinterpret_cast(getParentEdgeAt(CUM_SUM_DATA)->getMemoryPtr()->GetPtr()); @@ -284,13 +258,7 @@ bool MKLDNNCumSumNode::needPrepareParams() const { } void MKLDNNCumSumNode::executeDynamicImpl(mkldnn::stream strm) { - return execute(strm); -} - -void MKLDNNCumSumNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } + execute(strm); } REG_MKLDNN_PRIM_FOR(MKLDNNCumSumNode, CumSum) diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.h index 2e5ebfaf7d8..dc1d1b219d7 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_cum_sum_node.h @@ -15,7 +15,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; @@ -47,6 +46,13 @@ private: InferenceEngine::Precision dataPrecision; std::string errorPrefix; + + template + struct CumSumExecute { + void operator()(MKLDNNCumSumNode* node) { + node->exec(); + } + }; }; } // namespace MKLDNNPlugin diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp index 1cb58a478ec..19684324fbf 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp @@ -13,34 +13,38 @@ #include #include "ie_parallel.hpp" #include "utils/general_utils.h" -#include #include #include #include #include "memory_desc/dnnl_blocked_memory_desc.h" #include "utils/cpu_utils.hpp" +#include +#include +#include +#include +#include "convolution_shape_inference.hpp" + using namespace mkldnn; using namespace MKLDNNPlugin; using namespace InferenceEngine; bool MKLDNNDeconvolutionNode::isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept { try { - if (isDynamicNgraphNode(op)) { - errorMessage = "Doesn't support op with dynamic shapes"; - return false; - } - if (std::dynamic_pointer_cast(op) == nullptr && std::dynamic_pointer_cast(op) == nullptr) { errorMessage = "Only opset1 ConvolutionBackpropData and GroupConvolutionBackpropData operations are supported"; return false; } - size_t ndims = op->get_input_shape(0).size(); + size_t ndims = op->get_input_partial_shape(0).rank().get_length(); if ((ndims < 3) || (ndims > 5)) { errorMessage = "Only 3D, 4D and 5D blobs are supported as input"; return false; } + if (op->get_input_partial_shape(1).is_dynamic() || (op->get_input_size() > 2 && op->get_input_partial_shape(2).is_dynamic())) { + errorMessage = "Doesn't support dynamic shapes for 'weights' and 'output_shape' inputs"; + return false; + } } catch (...) { return false; } @@ -58,15 +62,14 @@ MKLDNNDeconvolutionNode::MKLDNNDeconvolutionNode(const std::shared_ptr(op); auto groupConvBackprop = std::dynamic_pointer_cast(op); - const auto dataShape = op->get_input_shape(0); - weightDims = op->get_input_shape(1); - const auto outShape = op->get_shape(); - OC = outShape[1]; - IC = dataShape[1]; + const auto& weightDims = getWeightDims(); if (convBackprop) { algorithm = DeconvolutionCommon; + IC = weightDims[0]; + OC = weightDims[1]; + groupNum = 1; withGroups = false; @@ -78,10 +81,17 @@ MKLDNNDeconvolutionNode::MKLDNNDeconvolutionNode(const std::shared_ptrget_pads_begin(); paddingR = convBackprop->get_pads_end(); + + outputPadding = convBackprop->get_output_padding(); + + autoPad = one_of(convBackprop->get_auto_pad(), ov::op::PadType::SAME_LOWER, ov::op::PadType::SAME_UPPER); } else if (groupConvBackprop) { algorithm = DeconvolutionGrouped; groupNum = weightDims[0]; + IC = groupNum * weightDims[1]; + OC = groupNum * weightDims[2]; + withGroups = groupNum > 1; isDW = withGroups && groupNum == OC && groupNum == IC; @@ -93,10 +103,26 @@ MKLDNNDeconvolutionNode::MKLDNNDeconvolutionNode(const std::shared_ptrget_pads_begin(); paddingR = groupConvBackprop->get_pads_end(); + + outputPadding = groupConvBackprop->get_output_padding(); + + autoPad = one_of(groupConvBackprop->get_auto_pad(), ov::op::PadType::SAME_LOWER, ov::op::PadType::SAME_UPPER); } for (int i = 0; i < dilation.size(); i++) { kernel.push_back(weightDims[withGroups + 2 + i]); } + + externOutShape = inputShapes.size() == 3; + if (externOutShape && isDynamicNode()) { + bool isConstOutShape = ngraph::is_type(op->get_input_node_shared_ptr(2)); + if (isConstOutShape) { + lastOutputSpatialDims = ov::as_type(op->get_input_node_ptr(2))->cast_vector(); + } + const auto spDimsNum = getInputShapeAtPort(0).getRank() - 2; + if (getInputShapeAtPort(2).getStaticDims()[0] != spDimsNum || (isConstOutShape && lastOutputSpatialDims.size() != spDimsNum)) { + IE_THROW() << "'output_shape' input has incorrect number of elements. Expected = " << spDimsNum; + } + } } else { IE_THROW(NotImplemented) << errorMessage; } @@ -113,14 +139,6 @@ InferenceEngine::Blob::Ptr MKLDNNDeconvolutionNode::createWeiBlobAsIO(InferenceE auto const blbSize = blb->GetSize(); // WA: In int8 case, we are processing weights using internal blob. - // So we disconnect constant node containing weights from the graph and then don't use it. - if (getParentEdges().size() == 3) { - removeEdge(getParentEdgeAt(2)); - inputShapes.erase(inputShapes.begin() + 2); - } - removeEdge(getParentEdgeAt(1)); - inputShapes.erase(inputShapes.begin() + 1); - InferenceEngine::SizeVector dimsForBlockedDesc{dims}; std::swap(dimsForBlockedDesc[withGroups + 0], dimsForBlockedDesc[withGroups + 1]); @@ -157,19 +175,19 @@ bool MKLDNNDeconvolutionNode::canBeExecutedInInt8() const { return false; } - // todo: [antonvor] added these checks to fix performance problems - if (kernel.size() == 3) - return false; if (!withGroups && stride.back() > 3) return false; if (!impl::cpu::x64::mayiuse(impl::cpu::x64::avx512_common)) { - auto inDims = getOutputShapeAtPort(0).getStaticDims(); + const auto& inMaxDims = getOutputShapeAtPort(0).getMaxDims(); + if (std::any_of(inMaxDims.begin(), inMaxDims.end(), [](Dim dim) { return dim == Shape::UNDEFINED_DIM; })) { + return false; + } // heuristicConst = 2^26 // heuristicParam = IC^2 * SP auto heuristicConst = 67108864; auto heuristicParam = IC * IC; - for (int i = 2; i < inDims.size(); i++) - heuristicParam *= inDims[i]; + for (int i = 2; i < inMaxDims.size(); i++) + heuristicParam *= inMaxDims[i]; if (heuristicParam > heuristicConst) return false; } @@ -206,10 +224,65 @@ bool MKLDNNDeconvolutionNode::canFuse(const MKLDNNNodePtr& node) const { return (fusedWith.empty() && node->canBePerformedAsScaleShift(this)); } -void MKLDNNDeconvolutionNode::getSupportedDescriptors() { - if (!descs_fwd.empty() && !descs_bwd.empty()) - return; +void MKLDNNDeconvolutionNode::initPadding(std::shared_ptr op, const Shape &inDims, const std::vector& outSpDims) { + std::vector input_shapes{inDims.getStaticDims(), getWeightDims()}; + ov::StaticShape output_shape_input; + if (externOutShape) { + IE_ASSERT(outSpDims.size() == getInputShapeAtPort(2).getStaticDims()[0]); + input_shapes.push_back({outSpDims.size()}); + for (size_t i = 0; i < outSpDims.size(); i++) { + output_shape_input.push_back(outSpDims[i]); + } + } + if (getAlgorithm() == DeconvolutionCommon) { + auto deconv = ngraph::as_type_ptr(op); + IE_ASSERT(ov::op::v1::resolve_auto_pad_for_shape_back_prop(deconv.get(), paddingL, paddingR, input_shapes, output_shape_input, 2, 2)); + } else if (getAlgorithm() == DeconvolutionGrouped) { + auto deconv = ngraph::as_type_ptr(op); + IE_ASSERT(ov::op::v1::resolve_auto_pad_for_shape_back_prop(deconv.get(), paddingL, paddingR, input_shapes, output_shape_input, 2, 3)); + } +} + +std::pair MKLDNNDeconvolutionNode::makeDummyInOutShape() { + auto inShape = MemoryDescUtils::makeDummyShape(getInputShapeAtPort(0)); + auto outShape = getOutputShapeAtPort(0); + + if (isDynamicNode()) { + if (externOutShape) { + if (lastOutputSpatialDims.empty()) { + const auto& shape = getOutputShapeAtPort(0); + lastOutputSpatialDims.resize(shape.getRank() - 2); + + const auto& minDims = shape.getMinDims(); + const auto& maxDims = shape.getMaxDims(); + const auto& dims = shape.getDims(); + for (size_t i = 0; i < dims.size() - 2; ++i) { + lastOutputSpatialDims[i] = dims[i + 2] == Shape::UNDEFINED_DIM ? std::min(maxDims[i + 2], + std::max(minDims[i + 2], static_cast(64))) : dims[i + 2]; + } + } + ov::CoordinateDiff pb = autoPad ? ov::CoordinateDiff(paddingL.size(), 0) : paddingL; + ov::CoordinateDiff pe = autoPad ? ov::CoordinateDiff(paddingR.size(), 0) : paddingR; + + auto inputDims = inShape.getStaticDims(); + const auto& weightDims = getWeightDims(); + const size_t wghOffset = getAlgorithm() == DeconvolutionGrouped ? 1 : 0; + for (size_t i = 0; i < inputDims.size() - 2; i++) { + inputDims[2 + i] = ((lastOutputSpatialDims[i] - (dilation[i] + 1) * + (weightDims[wghOffset + 2 + i] - 1) - 1 + pb[i] + pe[i] - outputPadding[i])) / + stride[i] + 1; + } + + inShape = Shape(inputDims); + } + initPadding(opToShapeInfer, inShape, lastOutputSpatialDims); + outShape = Shape(shapeInferInternal(inShape.getStaticDims(), lastOutputSpatialDims)); + } + return {inShape.getStaticDims(), outShape.getStaticDims()}; +} + +void MKLDNNDeconvolutionNode::getSupportedDescriptors() { isInt8 = canBeExecutedInInt8(); InferenceEngine::Precision inPrecision = getOriginalInputPrecisionAtPort(0); @@ -239,21 +312,17 @@ void MKLDNNDeconvolutionNode::getSupportedDescriptors() { if (getChildEdges().empty()) IE_THROW() << errorPrefix << " has incorrect number of output edges"; - for (int i = 0; i < paddingR.size(); i++) { - int with_group = getAlgorithm() == DeconvolutionGrouped ? 1 : 0; - int krn = weightDims[with_group + 2 + i]; - int src = getOutputShapeAtPort(0).getStaticDims()[2 + i]; - int dst = getInputShapeAtPort(0).getStaticDims()[2 + i]; - - krn = (krn - 1)*(dilation[i] + 1) + 1; - int calc_dst = (src - krn + paddingL[i]) / stride[i] + 1; - paddingR[i] = (dst - calc_dst) * stride[i]; - } + VectorDims inDims, outDims; + std::tie(inDims, outDims) = makeDummyInOutShape(); + inShape = Shape(inDims); + Shape outShape(outDims); + initPaddingR(inShape, outShape); if (isInt8) { + int8WeightDims = getWeightDims(); // WA: if int8 deconvolution is supported, we create internal weights blob in IO format - std::swap(weightDims[withGroups + 0], weightDims[withGroups + 1]); - internalBlobs.push_back(createWeiBlobAsIO(weightDims)); + std::swap(int8WeightDims[withGroups + 0], int8WeightDims[withGroups + 1]); + internalBlobs.push_back(createWeiBlobAsIO(int8WeightDims)); auto format = getInputShapeAtPort(0).getRank() == 5 ? dnnl::memory::format_tag::ndhwc : dnnl::memory::format_tag::nhwc; MemoryDescPtr in_candidate = std::make_shared(getInputShapeAtPort(0), inputDataType, format); MemoryDescPtr out_candidate = std::make_shared(getOutputShapeAtPort(0), outputDataType, format); @@ -265,23 +334,44 @@ void MKLDNNDeconvolutionNode::getSupportedDescriptors() { createDescriptor({in_candidate}, {out_candidate}); } } - setPostOps(attr); + setPostOps(attr, outShape.getStaticDims()); } -void MKLDNNDeconvolutionNode::setPostOps(mkldnn::primitive_attr &attr) { +void MKLDNNDeconvolutionNode::initPaddingR(const Shape &inShape, const Shape &outShape) { + for (int i = 0; i < paddingR.size(); i++) { + int with_group = getAlgorithm() == DeconvolutionGrouped ? 1 : 0; + const auto& weightDims = getWeightDims(); + int krn = weightDims[with_group + 2 + i]; + int src = outShape.getStaticDims()[2 + i]; + int dst = inShape.getStaticDims()[2 + i]; + + krn = (krn - 1)*(dilation[i] + 1) + 1; + int calc_dst = (src - krn + paddingL[i]) / stride[i] + 1; + paddingR[i] = (dst - calc_dst) * stride[i]; + } +} + +void MKLDNNDeconvolutionNode::setPostOps(mkldnn::primitive_attr &attr, const VectorDims &dims) { mkldnn::post_ops ops; + auto getBinPostOpShape = [&](){ + const auto outShapeRank = getOutputShapeAtPort(0).getRank(); + const auto chIdx = getFusingAxis(); + std::vector binaryShape(outShapeRank, 1); + binaryShape[chIdx] = dims[chIdx]; + return binaryShape; + }; + for (auto &node : fusedWith) { - auto* eltwiseNode = dynamic_cast(node.get()); - if (eltwiseNode) { + if (auto* eltwiseNode = dynamic_cast(node.get())) { // TODO [DS]: change to shape from memory constexpr int align = 16; - eltwiseNode->appendPostOps(ops, getOutputShapeAtPort(0).getStaticDims(), align); + // use legacy depthwise since backprop convolution does not support binary post ops + eltwiseNode->appendPostOps(ops, dims, align); continue; } - auto* fakeQuantizeNode = dynamic_cast(node.get()); - if (fakeQuantizeNode) { - fakeQuantizeNode->appendPostOps(ops); + if (auto* fakeQuantizeNode = dynamic_cast(node.get())) { + fakeQuantizeNode->appendBinPostOps(ops, getBinPostOpShape(), binaryPostOpsArgs); continue; } IE_THROW() << "Fusing of " << NameFromType(node->getType()) << " operation to " << NameFromType(this->getType()) << " node is not implemented"; @@ -334,78 +424,300 @@ bool MKLDNNDeconvolutionNode::created() const { return getType() == Deconvolution; } -void MKLDNNDeconvolutionNode::createPrimitive() { - if (prim) - return; +bool MKLDNNDeconvolutionNode::needShapeInfer() const { + if (inputShapesModified()) { + return true; + } + if (externOutShape) { + if (lastOutputSpatialDims != readOutputSpatialDims()) { + return true; + } + } - if (isInt8) { - auto prim_desc = createPrimitiveDescriptor(attr); + return false; +} - prim.reset(new deconvolution_forward(prim_desc)); +std::vector MKLDNNDeconvolutionNode::shapeInfer() const { + const auto &dataMemPtr = getParentEdgesAtPort(0)[0]->getMemoryPtr(); + std::vector outSpDims; + if (externOutShape) { + outSpDims = readOutputSpatialDims(); + } + return {shapeInferInternal(dataMemPtr->getStaticDims(), outSpDims)}; +} - auto src = getParentEdgesAtPort(0)[0]->getMemoryPtr()->GetPrimitive(); - auto dst = getChildEdgesAtPort(0)[0]->getMemoryPtr()->GetPrimitive(); - primArgs = {{DNNL_ARG_SRC, src}, {DNNL_ARG_WEIGHTS, internalBlobMemory[0]->GetPrimitive()}, {DNNL_ARG_DST, dst}}; - } else { - auto prim_desc = createPrimitiveDescriptor(attr); +VectorDims MKLDNNDeconvolutionNode::shapeInferInternal(const VectorDims &inDims, std::vector outSpDims) const { + std::vector inputShapes = { + inDims, + getWeightDims() + }; - prim.reset(new convolution_backward_data(prim_desc)); + std::map> inputValues; - auto src = getParentEdgesAtPort(0)[0]->getMemoryPtr()->GetPrimitive(); - auto weights = getParentEdgeAt(1)->getMemory().GetPrimitive(); - auto dst = getChildEdgesAtPort(0)[0]->getMemoryPtr()->GetPrimitive(); - primArgs = {{DNNL_ARG_DIFF_DST, src}, {DNNL_ARG_WEIGHTS, weights}, {DNNL_ARG_DIFF_SRC, dst}}; + if (externOutShape) { + if (outSpDims.size() != getInputShapeAtPort(2).getStaticDims()[0]) { + IE_THROW() << "Can't compute output shape for node with name: " << getName() + << ", because the node has 'output_shape' input, but provided output spatial dims number is incorrect"; + } + inputShapes.push_back({outSpDims.size()}); + inputValues.insert({2, std::make_shared(ngraph::element::Type_t::i32, + inputShapes.back().to_shape(), + outSpDims.data())}); + } + + std::vector outputShapes(1); + shape_inference(opToShapeInfer.get(), inputShapes, outputShapes, inputValues); + + return outputShapes.back().to_shape(); +} + +void MKLDNNDeconvolutionNode::execute(mkldnn::stream strm) { + if (!execPtr) { + IE_THROW() << "Can't execute Deconvolution node with name: " << getName() << ", because executor is not compiled"; + } + execPtr->exec(primArgs, strm); + + if (externOutShape) { + lastOutputSpatialDims = readOutputSpatialDims(); } } -void MKLDNNDeconvolutionNode::createDescriptor(const std::vector &inputDesc, - const std::vector &outputDesc) { - const auto in_candidate = MemoryDescUtils::convertToDnnlBlockedMemoryDesc(*inputDesc[0]); - const auto out_candidate = MemoryDescUtils::convertToDnnlBlockedMemoryDesc(*outputDesc[0]); +std::shared_ptr MKLDNNDeconvolutionNode::createDefaultMkldnnDeconvDesc(const mkldnn::memory::desc& srcDesc, + const mkldnn::memory::desc& wghDesc, + const mkldnn::memory::desc& dstDesc, + bool isWinograd) const { + mkldnn::algorithm alg = isWinograd ? mkldnn::algorithm::convolution_winograd : mkldnn::algorithm::convolution_direct; + std::shared_ptr deconv_desc; + std::shared_ptr fwd_conv_pd; + std::tie(deconv_desc, fwd_conv_pd) = createDescriptorInternalDefault(srcDesc, wghDesc, dstDesc, alg); + if (fwd_conv_pd->get(true) == nullptr) { + IE_THROW() << "Forward convolution primitive descriptor is nullable for node with name: " << getName(); + } + return std::make_shared(deconv_desc, fwd_conv_pd); +} - // grouping and autoblicking is not compatible - if ((withGroups && !isDW) && (in_candidate.blocksExtended() || out_candidate.blocksExtended())) - return; +std::shared_ptr MKLDNNDeconvolutionNode::createInt8MkldnnDeconvDesc(const mkldnn::memory::desc& srcDesc, + const mkldnn::memory::desc& wghDesc, + const mkldnn::memory::desc& dstDesc) const { + return std::make_shared(createDescriptorInternalInt8(srcDesc, wghDesc, dstDesc)); +} +void MKLDNNDeconvolutionNode::createDeconvPrim(std::shared_ptr desc, + MKLDNNMemoryPtr srcMemPtr, + MKLDNNMemoryPtr wghMemPtr, + MKLDNNMemoryPtr dstMemPtr, + AttrPtr attr, + impl_desc_type selectedImpl) { + auto itpd = desc->createPrimitiveDescriptorIterator(getEngine(), *attr); + + while (static_cast(itpd)) { + impl_desc_type impl_type = parse_impl_name(itpd.impl_info_str()); + + if (impl_type == selectedImpl) { + if (isInt8) { + if (internalBlobMemory.empty()) { + prepareMemory(itpd); + } + auto prim_desc = deconvolution_forward::primitive_desc(itpd.get()); + execPtr = std::make_shared(prim_desc, + srcMemPtr->GetPrimitive().get_desc(), + internalBlobMemory.front()->GetPrimitive().get_desc(), + dstMemPtr->GetPrimitive().get_desc(), + getEngine()); + } else { + auto prim_desc = convolution_backward_data::primitive_desc(itpd.get()); + execPtr = std::make_shared(prim_desc, + srcMemPtr->GetPrimitive().get_desc(), + wghMemPtr->GetPrimitive().get_desc(), + dstMemPtr->GetPrimitive().get_desc(), + getEngine()); + } + return; + } + + if (!itpd.next_impl()) { + auto inDesc = mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(srcMemPtr->getStaticDims()), + memory::data_type::f32, + memory::format_tag::any); + auto wghDesc = mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(wghMemPtr->getStaticDims()), + memory::data_type::f32, + memory::format_tag::any); + auto outDesc = mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(dstMemPtr->getStaticDims()), + memory::data_type::f32, + memory::format_tag::any); + + std::shared_ptr anyDeconvDesc = createDefaultMkldnnDeconvDesc(inDesc, wghDesc, outDesc, false); + auto anyDeconvItpd = anyDeconvDesc->createPrimitiveDescriptorIterator(getEngine(), *attr); + if (static_cast(anyDeconvItpd)) { + auto prim_desc = convolution_backward_data::primitive_desc(anyDeconvItpd.get()); + execPtr = std::make_shared(prim_desc, + srcMemPtr->GetPrimitive().get_desc(), + wghMemPtr->GetPrimitive().get_desc(), + dstMemPtr->GetPrimitive().get_desc(), + getEngine()); + return; + } + } + } + IE_THROW() << "Primitive descriptor was not found for node " << getName() << "."; +} + +void MKLDNNDeconvolutionNode::prepareParams() { + auto srcMemPtr = getParentEdgesAtPort(0)[0]->getMemoryPtr(); + auto wghMemPtr = getParentEdgesAtPort(1)[0]->getMemoryPtr(); + auto dstMemPtr = getChildEdgesAtPort(0)[0]->getMemoryPtr(); + if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) + IE_THROW() << "Destination memory didn't allocate."; + if (!srcMemPtr || !srcMemPtr->GetPrimitivePtr()) + IE_THROW() << "Input memory didn't allocate."; + const NodeDesc *selected_pd = getSelectedPrimitiveDescriptor(); + if (!wghMemPtr || !wghMemPtr->GetPrimitivePtr()) + IE_THROW() << "Weight memory didn't allocate."; + if (selected_pd == nullptr) + IE_THROW() << "Preferable primitive descriptor is not set for node " << getName() << "."; + + auto inMemoryDesc = getParentEdgesAtPort(0).front()->getMemory().GetDescWithType(); + auto outMemoryDesc = getChildEdgesAtPort(0).front()->getMemory().GetDescWithType(); + + auto initPrimitiveAttr = [&]() { + mkldnn::primitive_attr attr; + setPostOps(attr, dstMemPtr->getStaticDims()); + return std::make_shared(std::move(attr)); + }; + + AttrPtr pAttrLocal; + + if (isDynamicNode()) { + if (!pAttr) { + pAttr = initPrimitiveAttr(); + } + pAttrLocal = pAttr; + if (autoPad || externOutShape) { + initPadding(opToShapeInfer, inMemoryDesc->getShape(), externOutShape ? readOutputSpatialDims() : std::vector{}); + } + initPaddingR(inMemoryDesc->getShape(), outMemoryDesc->getShape()); + } else { + pAttrLocal = initPrimitiveAttr(); + } + + const auto in_candidate = inMemoryDesc->getDnnlDesc(); + const auto out_candidate = outMemoryDesc->getDnnlDesc(); + + mkldnn::memory::desc wgh_candidate; + if (isInt8) { + if (internalBlobMemory.empty()) { + wgh_candidate = mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(int8WeightDims), memory::data_type::s8, memory::format_tag::any); + } else { + wgh_candidate = internalBlobMemory.front()->GetDescWithType()->getDnnlDesc(); + } + } else { + wgh_candidate = getParentEdgesAtPort(1).front()->getMemory().GetDescWithType()->getDnnlDesc(); + } + + std::shared_ptr desc; + if (isInt8) { + desc = createInt8MkldnnDeconvDesc(in_candidate, wgh_candidate, out_candidate); + } else { + desc = createDefaultMkldnnDeconvDesc(in_candidate, wgh_candidate, out_candidate, + selected_pd->getImplementationType() == MKLDNNPlugin::impl_desc_type::jit_avx512_winograd); + } + + createDeconvPrim(desc, srcMemPtr, wghMemPtr, dstMemPtr, pAttrLocal, selected_pd->getImplementationType()); + + if (std::dynamic_pointer_cast(execPtr)) { + primArgs = {{DNNL_ARG_SRC, srcMemPtr->GetPrimitive()}, + {DNNL_ARG_WEIGHTS, internalBlobMemory.front()->GetPrimitive()}, + {DNNL_ARG_DST, dstMemPtr->GetPrimitive()}}; + } else { + primArgs = {{DNNL_ARG_DIFF_DST, srcMemPtr->GetPrimitive()}, + {DNNL_ARG_WEIGHTS, wghMemPtr->GetPrimitive()}, + {DNNL_ARG_DIFF_SRC, dstMemPtr->GetPrimitive()}}; + } + MKLDNNNode::appendPostOpArgs(attr, primArgs, binaryPostOpsArgs); +} + +void MKLDNNDeconvolutionNode::createPrimitive() { + if (inputShapesDefined()) { + if (needPrepareParams()) + prepareParams(); + updateLastInputDims(); + } +} + +MKLDNNDeconvolutionNode::DefaultDeconvDescs MKLDNNDeconvolutionNode::createDescriptorInternalDefault(const mkldnn::memory::desc& in_candidate, + const mkldnn::memory::desc& wgh_candidate, + const mkldnn::memory::desc& out_candidate, + mkldnn::algorithm alg) const { auto convertDims = [] (const std::vector& orig_dims) { return memory::dims(orig_dims.begin(), orig_dims.end()); }; + std::shared_ptr conv_desc; + conv_desc = std::make_shared(prop_kind::forward_inference, alg, + out_candidate, wgh_candidate, in_candidate, + convertDims(stride), + convertDims(dilation), + convertDims(paddingL), + convertDims(paddingR)); + + std::shared_ptr deconv_desc; + deconv_desc = std::make_shared(alg, out_candidate, wgh_candidate, + in_candidate, + convertDims(stride), + convertDims(dilation), + convertDims(paddingL), + convertDims(paddingR)); + + auto fwd_conv_pd = std::make_shared(*conv_desc, getEngine(), true); + + return {deconv_desc, fwd_conv_pd}; +} + +MKLDNNDeconvolutionNode::Int8DeconvDesc MKLDNNDeconvolutionNode::createDescriptorInternalInt8(const mkldnn::memory::desc& in_candidate, + const mkldnn::memory::desc& wgh_candidate, + const mkldnn::memory::desc& out_candidate) const { + auto convertDims = [] (const std::vector& orig_dims) { + return memory::dims(orig_dims.begin(), orig_dims.end()); + }; + + MKLDNNDeconvolutionNode::Int8DeconvDesc deconv_desc; + deconv_desc = std::make_shared(prop_kind::forward_inference, mkldnn::algorithm::deconvolution_direct, + in_candidate, wgh_candidate, out_candidate, + convertDims(stride), convertDims(dilation), + convertDims(paddingL), convertDims(paddingR)); + return deconv_desc; +} + +void MKLDNNDeconvolutionNode::createDescriptor(const std::vector &inputDesc, + const std::vector &outputDesc) { + auto inDesc = inputDesc[0]->isDefined() ? inputDesc[0] : inputDesc[0]->cloneWithNewDims(inShape.getStaticDims()); + auto dnnlInDesc = MemoryDescUtils::convertToDnnlBlockedMemoryDesc(*inDesc); + auto in_candidate = dnnlInDesc.getDnnlDesc(); + + auto outDesc = outputDesc[0]; + if (!outDesc->isDefined()) { + const auto outShape = shapeInferInternal(inDesc->getShape().getStaticDims(), lastOutputSpatialDims); + outDesc = outDesc->cloneWithNewDims(outShape); + } + auto dnnlOutDesc = MemoryDescUtils::convertToDnnlBlockedMemoryDesc(*outDesc); + auto out_candidate = dnnlOutDesc.getDnnlDesc(); + + // grouping and autoblocking is not compatible + if ((withGroups && !isDW) && (dnnlInDesc.blocksExtended() || dnnlOutDesc.blocksExtended())) + return; + if (isInt8) { - mkldnn::memory::desc wgh_candidate(MKLDNNExtensionUtils::convertToDnnlDims(weightDims), memory::data_type::s8, memory::format_tag::any); - std::shared_ptr deconv_desc; - deconv_desc.reset(new deconvolution_forward::desc(prop_kind::forward_inference, mkldnn::algorithm::deconvolution_direct, - in_candidate.getDnnlDesc(), wgh_candidate, out_candidate.getDnnlDesc(), - convertDims(stride), convertDims(dilation), - convertDims(paddingL), convertDims(paddingR))); - descs.emplace_back(deconv_desc); + mkldnn::memory::desc wgh_candidate(MKLDNNExtensionUtils::convertToDnnlDims(int8WeightDims), memory::data_type::s8, memory::format_tag::any); + descs.emplace_back(createDescriptorInternalInt8(in_candidate, wgh_candidate, out_candidate)); } else { - mkldnn::memory::desc wgh_candidate(MKLDNNExtensionUtils::convertToDnnlDims(weightDims), in_candidate.getDataType(), memory::format_tag::any); + mkldnn::memory::desc wgh_candidate(MKLDNNExtensionUtils::convertToDnnlDims(getWeightDims()), + dnnlInDesc.getDataType(), memory::format_tag::any); for (auto alg : {mkldnn::algorithm::convolution_winograd, mkldnn::algorithm::convolution_direct}) { - std::shared_ptr conv_desc; - conv_desc.reset(new convolution_forward::desc(prop_kind::forward_inference, alg, - out_candidate.getDnnlDesc(), wgh_candidate, in_candidate.getDnnlDesc(), - convertDims(stride), - convertDims(dilation), - convertDims(paddingL), - convertDims(paddingR))); - - std::shared_ptr deconv_desc; - deconv_desc.reset(new convolution_backward_data::desc(alg, out_candidate.getDnnlDesc(), wgh_candidate, - in_candidate.getDnnlDesc(), - convertDims(stride), - convertDims(dilation), - convertDims(paddingL), - convertDims(paddingR))); - descs_fwd.push_back(conv_desc); - descs_bwd.push_back(deconv_desc); - - auto fwd_conv_pd = std::make_shared(*conv_desc, getEngine(), true); + std::shared_ptr deconv_desc; + std::shared_ptr fwd_conv_pd; + std::tie(deconv_desc, fwd_conv_pd) = createDescriptorInternalDefault(in_candidate, wgh_candidate, out_candidate, alg); if (fwd_conv_pd->get(true) == nullptr) continue; - descs.emplace_back(deconv_desc, fwd_conv_pd); } } @@ -413,15 +725,25 @@ void MKLDNNDeconvolutionNode::createDescriptor(const std::vector std::shared_ptr MKLDNNDeconvolutionNode::getSrcMemDesc(mkldnn::primitive_desc_iterator &primitive_desc_it, size_t idx) { if (idx == 2) { - return std::make_shared(getOriginalInputPrecisionAtPort(2), Shape(getInputShapeAtPort(2).getStaticDims())); + return std::make_shared(InferenceEngine::Precision::I32, Shape(getInputShapeAtPort(2).getStaticDims())); + } else if (idx > 0 && isInt8) { + // we need to store 'weight' input as edge, + // because at this moment we can't simple replace internal blob with input, since we need to save weight data as is, but with different order + return std::make_shared(getOriginalInputPrecisionAtPort(idx), Shape(getInputShapeAtPort(idx).getStaticDims())); } auto desc = idx > 0 ? primitive_desc_it.weights_desc(idx - 1) : isInt8 ? primitive_desc_it.src_desc(idx) : primitive_desc_it.diff_dst_desc(idx); + if (getInputShapeAtPort(idx).isDynamic()) { + return MKLDNNExtensionUtils::makeUndefinedDesc(desc, getInputShapeAtPort(idx)); + } return MKLDNNExtensionUtils::makeDescriptor(desc); } std::shared_ptr MKLDNNDeconvolutionNode::getDstMemDesc(mkldnn::primitive_desc_iterator &primitive_desc_it, size_t idx) { auto desc = isInt8 ? primitive_desc_it.dst_desc(idx) : primitive_desc_it.diff_src_desc(idx); + if (getOutputShapeAtPort(idx).isDynamic()) { + return MKLDNNExtensionUtils::makeUndefinedDesc(desc, getOutputShapeAtPort(idx)); + } return MKLDNNExtensionUtils::makeDescriptor(desc); } @@ -439,4 +761,61 @@ InferenceEngine::Precision MKLDNNDeconvolutionNode::getRuntimePrecision() const return getMaxPrecision(inputPrecisions); } +MKLDNNDeconvolutionNode::DeconvExecutorDefault::DeconvExecutorDefault(const mkldnn::convolution_backward_data::primitive_desc& pd, + const mkldnn::memory::desc& inMemDesc, + const mkldnn::memory::desc& weightMemDesc, + const mkldnn::memory::desc& outMemDesc, + const mkldnn::engine& engine) { + execPrim.reset(new mkldnn::convolution_backward_data(pd)); + + if (inMemDesc != pd.diff_dst_desc()) { + inputReorders.insert({DNNL_ARG_DIFF_DST, IntermReorder(inMemDesc, pd.diff_dst_desc(), engine)}); + } + + if (weightMemDesc != pd.weights_desc()) { + inputReorders.insert({DNNL_ARG_WEIGHTS, IntermReorder(weightMemDesc, pd.weights_desc(), engine)}); + } + + if (outMemDesc != pd.diff_src_desc()) { + outputReorders.insert({DNNL_ARG_DIFF_SRC, IntermReorder(pd.diff_src_desc(), outMemDesc, engine)}); + } +} + +MKLDNNDeconvolutionNode::DeconvExecutorInt8::DeconvExecutorInt8(const mkldnn::deconvolution_forward::primitive_desc& pd, + const mkldnn::memory::desc& inMemDesc, + const mkldnn::memory::desc& weightMemDesc, + const mkldnn::memory::desc& outMemDesc, + const mkldnn::engine& engine) { + execPrim.reset(new mkldnn::deconvolution_forward(pd)); + + if (inMemDesc != pd.src_desc()) { + inputReorders.insert({DNNL_ARG_SRC, IntermReorder(inMemDesc, pd.src_desc(), engine)}); + } + + if (weightMemDesc != pd.weights_desc()) { + inputReorders.insert({DNNL_ARG_WEIGHTS, IntermReorder(weightMemDesc, pd.weights_desc(), engine)}); + } + + if (outMemDesc != pd.dst_desc()) { + outputReorders.insert({DNNL_ARG_DST, IntermReorder(pd.dst_desc(), outMemDesc, engine)}); + } +} + +std::vector MKLDNNDeconvolutionNode::readOutputSpatialDims() const { + if (getParentEdges().size() < 3) { + IE_THROW() << "Can't get output spatial dims. Inputs number = " << getParentEdges().size(); + } + const auto &shapeMemPtr = getParentEdgesAtPort(2)[0]->getMemoryPtr(); + if (!shapeMemPtr || !shapeMemPtr->GetPrimitivePtr()) { + IE_THROW() << "'output_shape' input memory is not allocated."; + } + const auto spDimsNum = getInputShapeAtPort(0).getRank() - 2; + if (shapeMemPtr->getStaticDims()[0] != spDimsNum) { + IE_THROW() << "Can't read output spatial dims, beause 'output_shape' input has incorrect number of elements"; + } + const int32_t *outShapePtr = reinterpret_cast(shapeMemPtr->GetPtr()); + std::vector outSpDims(outShapePtr, outShapePtr + shapeMemPtr->getStaticDims()[0]); + return outSpDims; +} + REG_MKLDNN_PRIM_FOR(MKLDNNDeconvolutionNode, Deconvolution); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.h index 32837b4d59c..9b3bab44676 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.h @@ -9,10 +9,15 @@ #include #include #include +#include "common/dnnl_executor.h" namespace MKLDNNPlugin { class MKLDNNDeconvolutionNode : public MKLDNNNode { + using DefaultDeconvDescs = std::pair, + std::shared_ptr>; + using Int8DeconvDesc = std::shared_ptr; + public: MKLDNNDeconvolutionNode(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache); @@ -39,27 +44,88 @@ public: static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; bool canFuse(const MKLDNNNodePtr& node) const override; - const InferenceEngine::SizeVector& getWeightDims() { return weightDims; } - const std::vector& getStride() { return stride; } + const VectorDims& getWeightDims() const { return getInputShapeAtPort(1).getStaticDims(); } + const std::vector& getStride() const { return stride; } + + void prepareParams() override; + void execute(mkldnn::stream strm) override; + void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + bool needShapeInfer() const override; + std::vector shapeInfer() const override; private: + using executorPtr = std::shared_ptr; + executorPtr execPtr = nullptr; + + class DeconvExecutorDefault : public DnnlExecutor { + public: + DeconvExecutorDefault(const mkldnn::convolution_backward_data::primitive_desc& pd, + const mkldnn::memory::desc& inMemDesc, + const mkldnn::memory::desc& weightMemDesc, + const mkldnn::memory::desc& outMemDesc, + const mkldnn::engine& engine); + }; + + class DeconvExecutorInt8 : public DnnlExecutor { + public: + DeconvExecutorInt8(const mkldnn::deconvolution_forward::primitive_desc& pd, + const mkldnn::memory::desc& inMemDesc, + const mkldnn::memory::desc& weightMemDesc, + const mkldnn::memory::desc& outMemDesc, + const mkldnn::engine& engine); + }; + bool withGroups = false; bool isDW = false; bool isInt8 = false; + bool autoPad = false; + bool externOutShape = false; size_t groupNum = 1; size_t IC; size_t OC; std::vector kernel; std::vector stride; std::vector dilation; - std::vector paddingL; - std::vector paddingR; - InferenceEngine::SizeVector weightDims; - std::vector> descs_fwd; - std::vector> descs_bwd; + ov::CoordinateDiff paddingL; + ov::CoordinateDiff paddingR; + ov::CoordinateDiff outputPadding; + std::vector lastOutputSpatialDims; + VectorDims int8WeightDims; + + Shape inShape; + + AttrPtr pAttr; mkldnn::primitive_attr attr; - void setPostOps(mkldnn::primitive_attr &attr); + void setPostOps(mkldnn::primitive_attr &attr, const VectorDims &dims); + + VectorDims shapeInferInternal(const VectorDims &inDims, std::vector outSpDims) const; + void initPadding(std::shared_ptr op, const Shape &inShape, const std::vector& outSpDims); + void initPaddingR(const Shape &inShape, const Shape &outShape); + std::vector readOutputSpatialDims() const; + std::pair makeDummyInOutShape(); + + DefaultDeconvDescs createDescriptorInternalDefault(const mkldnn::memory::desc& in_candidate, + const mkldnn::memory::desc& wgh_candidate, + const mkldnn::memory::desc& out_candidate, + mkldnn::algorithm alg) const; + Int8DeconvDesc createDescriptorInternalInt8(const mkldnn::memory::desc& in_candidate, + const mkldnn::memory::desc& wgh_candidate, + const mkldnn::memory::desc& out_candidate) const; + std::shared_ptr createDefaultMkldnnDeconvDesc(const mkldnn::memory::desc& srcDesc, + const mkldnn::memory::desc& wghDesc, + const mkldnn::memory::desc& dstDesc, + bool isWinograd) const; + std::shared_ptr createInt8MkldnnDeconvDesc(const mkldnn::memory::desc& srcDesc, + const mkldnn::memory::desc& wghDesc, + const mkldnn::memory::desc& dstDesc) const; + + void createDeconvPrim(std::shared_ptr desc, + MKLDNNMemoryPtr srcMemPtr, + MKLDNNMemoryPtr wghMemPtr, + MKLDNNMemoryPtr dstMemPtr, + AttrPtr attr, + impl_desc_type selectedImpl); std::string errorPrefix; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.cpp index 3d5e8a24744..2d20f4ee1ea 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.cpp @@ -49,15 +49,7 @@ bool MKLDNNDetectionOutputNode::isSupportedOperation(const std::shared_ptr& op, const mkldnn::engine& eng, +MKLDNNDetectionOutputNode::MKLDNNDetectionOutputNode(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache) : MKLDNNNode(op, eng, cache) { std::string errorMessage; if (!isSupportedOperation(op, errorMessage)) { @@ -170,6 +162,10 @@ struct ConfidenceComparatorDO { const float* confData; }; +void MKLDNNDetectionOutputNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNDetectionOutputNode::execute(mkldnn::stream strm) { float *dstData = reinterpret_cast(getChildEdgesAtPort(0)[0]->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.h index 41fc5478328..c602e636259 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_detection_output_node.h @@ -16,7 +16,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; @@ -24,7 +23,7 @@ public: protected: void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; private: static const int ID_LOC = 0; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.cpp index 353a022faf9..c046fb968f9 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.cpp @@ -7,6 +7,7 @@ #include #include +#include "cpu_types.h" #include "utils/bfloat16.hpp" #include #include @@ -31,6 +32,7 @@ #include "ngraph_transformations/op/leaky_relu.hpp" #include "ngraph_transformations/op/swish_cpu.hpp" +#include #include #include #include @@ -791,18 +793,41 @@ private: } }; +MKLDNNEltwiseNode::BroadcastingPolicy MKLDNNEltwiseNode::determineBroadcastingPolicy(const std::shared_ptr& op) { + const auto const1 = std::dynamic_pointer_cast(op->get_input_node_shared_ptr(0)); + const auto const2 = std::dynamic_pointer_cast(op->get_input_node_shared_ptr(1)); + int constPort = -1; + if (const2) { + constPort = 1; + } else if (const1) { + constPort = 0; + } else { + return Undefined; + } + + auto const_shape = op->get_input_shape(constPort); + if (ngraph::shape_size(const_shape) == 1) + return PerTensor; + else + return PerChannel; +} + const std::map MKLDNNEltwiseNode::initializers = { {ngraph::op::v1::Add::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwiseAdd; + node.broadcastingPolicy = determineBroadcastingPolicy(op); }}, {ngraph::op::v1::Subtract::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwiseSubtract; + node.broadcastingPolicy = determineBroadcastingPolicy(op); }}, {ngraph::op::v1::Multiply::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwiseMultiply; + node.broadcastingPolicy = determineBroadcastingPolicy(op); }}, {ngraph::op::v1::Divide::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwiseDivide; + node.broadcastingPolicy = determineBroadcastingPolicy(op); }}, {ngraph::op::v0::SquaredDifference::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwiseSquaredDifference; @@ -828,6 +853,7 @@ const std::map M node.alpha = powerStatic->get_power(); node.beta = powerStatic->get_scale(); node.gamma = powerStatic->get_shift(); + node.broadcastingPolicy = PerTensor; }}, {ngraph::op::v1::Equal::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwiseEqual; @@ -954,6 +980,7 @@ const std::map M }}, {ngraph::op::v0::PRelu::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwisePrelu; + node.broadcastingPolicy = determineBroadcastingPolicy(op); }}, {ngraph::op::v0::Erf::get_type_info_static(), [](const std::shared_ptr& op, MKLDNNEltwiseNode& node) { node.algorithm = EltwiseErf; @@ -984,7 +1011,7 @@ bool MKLDNNEltwiseNode::isSupportedOperation(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache) : - MKLDNNNode(op, eng, cache) { + MKLDNNNode(op, eng, cache), broadcastingPolicy(Undefined) { std::string errorMessage; if (!isSupportedOperation(op, errorMessage)) { IE_THROW(NotImplemented) << errorMessage; @@ -1498,14 +1525,6 @@ void MKLDNNEltwiseNode::selectOptimalPrimitiveDescriptor() { selectPreferPrimitiveDescriptor(getPrimitivesPriority(), true); } -void MKLDNNEltwiseNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNEltwiseNode::initOptimalPrimitiveDescriptor() { auto selected_pd = getSelectedPrimitiveDescriptor(); if (selected_pd == nullptr) @@ -1656,6 +1675,10 @@ void MKLDNNEltwiseNode::executeReference(const jit_eltwise_params &jep, const ji }); } +void MKLDNNEltwiseNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNEltwiseNode::execute(mkldnn::stream strm) { if (execPtr) { jit_eltwise_call_args_ptrs args_ptrs = {}; @@ -1713,106 +1736,124 @@ void MKLDNNEltwiseNode::fuseInto(MKLDNNNodePtr& parentNode) { getInputShapeAtPort(0) == getInputShapeAtPort(1); if (!specialConvolutionAddFusing && canBePerformedAsScaleShift(parentNode.get())) { std::tie(scales, shifts) = getScalesAndShifts(parentNode.get()); + if ((parentNode->getType() == FullyConnected || parentNode->getType() == MatMul) && one_of(getAlgorithm(), EltwiseAdd, EltwiseSubtract, + EltwiseMultiply, EltwiseDivide, EltwiseMulAdd, EltwisePowerStatic, EltwisePrelu)) { + std::tie(scales, shifts) = getScalesAndShifts(parentNode.get()); + } } MKLDNNNode::fuseInto(parentNode); } -void MKLDNNEltwiseNode::appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align, bool initAsBinary, bool initBinaryMemory) { +void MKLDNNEltwiseNode::appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align) { const std::string errorPrefix = "Appending Eltwise node with name '" + getName() + "' "; if (getMKLDNNAlgorithm() != mkldnn::algorithm::undef) { switch (getMKLDNNAlgorithm()) { - case mkldnn::algorithm::eltwise_relu: - case mkldnn::algorithm::eltwise_tanh: - case mkldnn::algorithm::eltwise_elu: - case mkldnn::algorithm::eltwise_square: - case mkldnn::algorithm::eltwise_abs: - case mkldnn::algorithm::eltwise_sqrt: - case mkldnn::algorithm::eltwise_linear: - case mkldnn::algorithm::eltwise_bounded_relu: - case mkldnn::algorithm::eltwise_soft_relu: - case mkldnn::algorithm::eltwise_logistic: - case mkldnn::algorithm::eltwise_exp: - case mkldnn::algorithm::eltwise_gelu_erf: - case mkldnn::algorithm::eltwise_gelu_tanh: - case mkldnn::algorithm::eltwise_clip: - case mkldnn::algorithm::eltwise_swish: - case mkldnn::algorithm::eltwise_hardswish: - case mkldnn::algorithm::eltwise_mish: - case mkldnn::algorithm::eltwise_hsigmoid: - case mkldnn::algorithm::eltwise_round_half_to_even: - case mkldnn::algorithm::eltwise_round_half_away_from_zero: - ops.append_eltwise(1.0, getMKLDNNAlgorithm(), getAlpha(), getBeta()); - break; - default: IE_THROW() << errorPrefix << "as post operation is not supported"; + case mkldnn::algorithm::eltwise_relu: + case mkldnn::algorithm::eltwise_tanh: + case mkldnn::algorithm::eltwise_elu: + case mkldnn::algorithm::eltwise_square: + case mkldnn::algorithm::eltwise_abs: + case mkldnn::algorithm::eltwise_sqrt: + case mkldnn::algorithm::eltwise_linear: + case mkldnn::algorithm::eltwise_bounded_relu: + case mkldnn::algorithm::eltwise_soft_relu: + case mkldnn::algorithm::eltwise_logistic: + case mkldnn::algorithm::eltwise_exp: + case mkldnn::algorithm::eltwise_gelu_erf: + case mkldnn::algorithm::eltwise_gelu_tanh: + case mkldnn::algorithm::eltwise_clip: + case mkldnn::algorithm::eltwise_swish: + case mkldnn::algorithm::eltwise_hardswish: + case mkldnn::algorithm::eltwise_mish: + case mkldnn::algorithm::eltwise_hsigmoid: + case mkldnn::algorithm::eltwise_round_half_to_even: + case mkldnn::algorithm::eltwise_round_half_away_from_zero: + ops.append_eltwise(1.0, getMKLDNNAlgorithm(), getAlpha(), getBeta()); + break; + default: IE_THROW() << errorPrefix << "as post operation is not supported"; } } else { - const size_t chIdx = postOpDims.size() > 1 ? 1 : 0; + const size_t chIdx = postOpDims.size() > 1 ? getFusingAxis() : 0; scalesBuffer = makeAlignedBuffer(postOpDims[chIdx], scales, align); if (getAlgorithm() != EltwisePrelu) { shiftsBuffer = makeAlignedBuffer(postOpDims[chIdx], shifts, align); } - if (initAsBinary) { - auto appendBinary = [&](const mkldnn::algorithm alg, MKLDNNMemoryPtr &memPtr, const std::vector &data) { - if (data.empty()) - IE_THROW() << errorPrefix << "cannot be performed since buffers are not allocated"; - - std::vector binaryDims(postOpDims.size(), 1); - binaryDims[chIdx] = postOpDims[chIdx]; - - DnnlBlockedMemoryDesc memoryDesc(Precision::FP32, Shape(binaryDims)); - ops.append_binary(alg, memoryDesc.getDnnlDesc()); - - if (initBinaryMemory) { - memPtr.reset(new MKLDNNMemory(getEngine())); - memPtr->Create(memoryDesc, &data[0]); - } - }; - switch (getAlgorithm()) { - case EltwiseAdd: - case EltwiseSubtract: - appendBinary(mkldnn::algorithm::binary_add, shiftsMemory, shiftsBuffer); - break; - case EltwiseMultiply: - case EltwiseDivide: - appendBinary(mkldnn::algorithm::binary_mul, scalesMemory, scalesBuffer); - break; - case EltwiseMulAdd: - case EltwisePowerStatic: - appendBinary(mkldnn::algorithm::binary_mul, scalesMemory, scalesBuffer); - appendBinary(mkldnn::algorithm::binary_add, shiftsMemory, shiftsBuffer); - break; - case EltwisePrelu: - appendBinary(mkldnn::algorithm::binary_prelu, scalesMemory, scalesBuffer); - break; - default: - IE_THROW() << errorPrefix << "as post operation is not supported"; - } - } else { - switch (getAlgorithm()) { - case EltwiseAdd: - case EltwiseSubtract: - case EltwiseMultiply: - case EltwiseDivide: - case EltwiseMulAdd: - case EltwisePowerStatic: - if (scalesBuffer.empty() || shiftsBuffer.empty()) - IE_THROW() << errorPrefix << "cannot be performed since buffers are not allocated"; - ops.append_depthwise(mkldnn::algorithm::depthwise_scale_shift, &scalesBuffer[0], &shiftsBuffer[0]); - break; - case EltwisePrelu: - if (scalesBuffer.empty()) - IE_THROW() << errorPrefix << "cannot be performed since buffers are not allocated"; - ops.append_depthwise(mkldnn::algorithm::depthwise_prelu, &scalesBuffer[0], nullptr); - break; - default: - IE_THROW() << errorPrefix << "as post operation is not supported"; - } + /* @todo legacy depthwise post ops are kept for now + * for performance reasons + */ + switch (getAlgorithm()) { + case EltwiseAdd: + case EltwiseSubtract: + case EltwiseMultiply: + case EltwiseDivide: + case EltwiseMulAdd: + case EltwisePowerStatic: + if (scales.empty() || shifts.empty()) + IE_THROW() << errorPrefix << "cannot be performed since buffers are not allocated"; + ops.append_depthwise(mkldnn::algorithm::depthwise_scale_shift, &scalesBuffer[0], &shiftsBuffer[0]); + break; + case EltwisePrelu: + if (scales.empty()) + IE_THROW() << errorPrefix << "cannot be performed since buffers are not allocated"; + ops.append_depthwise(mkldnn::algorithm::depthwise_prelu, &scalesBuffer[0], nullptr); + break; + default: + IE_THROW() << errorPrefix << "as post operation is not supported"; } } } +void MKLDNNEltwiseNode::appendBinPostOps(mkldnn::post_ops& ops, const VectorDims& postOpDims, std::vector& binaryPostOpsMem) { + const std::string errorPrefix = "Appending Eltwise node with name '" + getName() + "' as binary post op "; + VectorDims broadcastBinaryShape(postOpDims.size(), 1); + + auto appendBinary = [&](const mkldnn::algorithm alg, MKLDNNMemoryPtr &memPtr, const std::vector &data) { + if (data.empty()) + IE_THROW() << errorPrefix << "cannot be performed since buffers are not allocated"; + if (broadcastingPolicy == Undefined) + IE_THROW() << errorPrefix << "cannot be performed since policy is Undefined"; + + DnnlBlockedMemoryDesc memoryDesc(Precision::FP32, broadcastingPolicy == PerTensor ? Shape(broadcastBinaryShape) : Shape(postOpDims)); + + ops.append_binary(alg, memoryDesc.getDnnlDesc()); + + if (!memPtr) { + memPtr.reset(new MKLDNNMemory(getEngine())); + memPtr->Create(memoryDesc, &data[0]); + + binaryPostOpsMem.push_back(memPtr); + } + }; + + switch (getAlgorithm()) { + case EltwiseAdd: + case EltwiseSubtract: + appendBinary(mkldnn::algorithm::binary_add, shiftsMemory, shifts); + break; + case EltwiseDivide: + case EltwiseMultiply: + appendBinary(mkldnn::algorithm::binary_mul, scalesMemory, scales); + break; + case EltwiseMulAdd: + appendBinary(mkldnn::algorithm::binary_mul, scalesMemory, scales); + appendBinary(mkldnn::algorithm::binary_add, shiftsMemory, shifts); + break; + case EltwisePowerStatic: + if (beta != 1.0f) // Multiply if has scales + appendBinary(mkldnn::algorithm::binary_mul, scalesMemory, scales); + if (gamma != 0.0f) // Add only if has shifts + appendBinary(mkldnn::algorithm::binary_add, shiftsMemory, shifts); + break; + case EltwisePrelu: + appendBinary(mkldnn::algorithm::binary_prelu, scalesMemory, scales); + break; + default: + IE_THROW() << errorPrefix << "as post operation is not supported"; + } +} + bool MKLDNNEltwiseNode::canFuse(const MKLDNNNodePtr& node) const { auto isSuitableNode = [this](const MKLDNNEltwiseNode* node) { // [WA] Since execution precision change from I32 to FP32 for Divide operation may lead to incorrect results diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.h index 5471a14b2c9..ce34a2096fc 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_eltwise_node.h @@ -75,7 +75,8 @@ public: bool created() const override; bool canBeInPlace() const override; bool canFuse(const MKLDNNNodePtr& node) const override; - void appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align = -1, bool initAsBinary = false, bool initBinaryMemory = false) override; + void appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align = -1) override; + void appendBinPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, std::vector& binaryPostOpsMem) override; void fuseInto(MKLDNNNodePtr& parentNode) override; InferenceEngine::Precision getRuntimePrecision() const override; @@ -89,16 +90,23 @@ public: bool isWithBroadcast(); bool isSpecialConvolutionAddFusing() const { return specialConvolutionAddFusing; } - void createPrimitive() override; - std::vector shapeInfer() const override; bool needPrepareParams() const override; void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; + + enum BroadcastingPolicy { + PerChannel, + PerTensor, + Undefined, + }; + + BroadcastingPolicy getBroadcastingPolicy() const { return broadcastingPolicy; } static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; + private: struct EltwiseExecutor { EltwiseExecutor(size_t batch) : batchDimIdx(batch) {} @@ -130,6 +138,8 @@ private: size_t fullWorkAmount = 0; }; + BroadcastingPolicy broadcastingPolicy; + mkldnn::algorithm mkldnnAlgorithm = mkldnn::algorithm::undef; static const int optimalTensorRank = 6; @@ -157,6 +167,8 @@ private: using Initializer = std::function&, MKLDNNEltwiseNode& node)>; static const std::map initializers; + static BroadcastingPolicy determineBroadcastingPolicy(const std::shared_ptr& op); + void executeOptimized6D(const std::unique_ptr &pKernel, const jit_eltwise_call_args_ptrs &args_ptrs, const VectorDims &dims_out) const; void executeOptimizedGeneric(const std::unique_ptr &pKernel, const jit_eltwise_call_args_ptrs &args_ptrs, diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.cpp index 86cb02d45d7..499d9b5b0de 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.cpp @@ -70,14 +70,6 @@ void MKLDNNEmbeddingBagOffsetSumNode::initSupportedPrimitiveDescriptors() { addSupportedPrimDesc(inDataConfigurators, {{LayoutType::ncsp, inDataPrecision}}, impl_desc_type::ref_any); } -void MKLDNNEmbeddingBagOffsetSumNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNEmbeddingBagOffsetSumNode::prepareParams() { _indicesLen = getParentEdgesAtPort(INDICES_IDX)[0]->getMemory().getStaticDims()[0]; _offsetsLen = getParentEdgesAtPort(OFFSETS_IDX)[0]->getMemory().getStaticDims()[0]; @@ -126,6 +118,14 @@ void MKLDNNEmbeddingBagOffsetSumNode::getIndices(int embIndex, const int*& indic weightsIdx = offsetsData_[embIndex]; } +void MKLDNNEmbeddingBagOffsetSumNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + +bool MKLDNNEmbeddingBagOffsetSumNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0); +} + void MKLDNNEmbeddingBagOffsetSumNode::execute(mkldnn::stream strm) { const auto *srcData = reinterpret_cast(getParentEdgeAt(0)->getMemoryPtr()->GetPtr()); auto *dstData = reinterpret_cast(getChildEdgeAt(0)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.h index 146003c0b41..9fd0e2ff4fe 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_offset_sum_node.h @@ -19,15 +19,15 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; + bool isExecutable() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; protected: void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; private: void initFromInputs() override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.cpp index 9dbaad08d80..bda4ebc7c28 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.cpp @@ -64,14 +64,6 @@ void MKLDNNEmbeddingBagPackedSumNode::initSupportedPrimitiveDescriptors() { addSupportedPrimDesc(inDataConfigurators, {{LayoutType::ncsp, inDataPrecision}}, impl_desc_type::ref_any); } -void MKLDNNEmbeddingBagPackedSumNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNEmbeddingBagPackedSumNode::prepareParams() { _batch = getParentEdgesAtPort(INDICES_IDX)[0]->getMemory().getStaticDims()[0]; _indicesPerBag = getParentEdgesAtPort(INDICES_IDX)[0]->getMemory().getStaticDims()[1]; @@ -94,6 +86,14 @@ void MKLDNNEmbeddingBagPackedSumNode::getIndices(int embIndex, const int*& indic weightsIdx = embIndex * _indicesPerBag; } +void MKLDNNEmbeddingBagPackedSumNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + +bool MKLDNNEmbeddingBagPackedSumNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0); +} + void MKLDNNEmbeddingBagPackedSumNode::execute(mkldnn::stream strm) { const auto *srcData = reinterpret_cast(getParentEdgeAt(0)->getMemoryPtr()->GetPtr()); auto *dstData = reinterpret_cast(getChildEdgeAt(0)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.h index fb01897debb..fddec417c65 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_bag_packed_sum_node.h @@ -19,15 +19,15 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; + bool isExecutable() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; protected: void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; private: void initFromInputs() override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.cpp index 2dca1793df1..58e5de78882 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.cpp @@ -11,14 +11,6 @@ using namespace MKLDNNPlugin; using namespace InferenceEngine; -void MKLDNNEmbeddingSegmentsSumNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - bool MKLDNNEmbeddingSegmentsSumNode::isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept { try { const auto embBagSegSumOp = ngraph::as_type_ptr(op); @@ -129,6 +121,14 @@ void MKLDNNEmbeddingSegmentsSumNode::getIndices(int embIndex, const int*& indice } } +void MKLDNNEmbeddingSegmentsSumNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + +bool MKLDNNEmbeddingSegmentsSumNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0); +} + void MKLDNNEmbeddingSegmentsSumNode::execute(mkldnn::stream strm) { const auto *srcData = reinterpret_cast(getParentEdgeAt(0)->getMemoryPtr()->GetPtr()); auto *dstData = reinterpret_cast(getChildEdgeAt(0)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.h index 942d337d099..31b3f4163e1 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_embedding_segments_sum_node.h @@ -19,15 +19,15 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; + bool isExecutable() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; protected: void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; private: void initFromInputs() override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.cpp index 96d8c48be47..96f1c85e738 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.cpp @@ -272,12 +272,6 @@ void MKLDNNExperimentalDetectronDetectionOutputNode::initSupportedPrimitiveDescr impl_desc_type::ref_any); } -void MKLDNNExperimentalDetectronDetectionOutputNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } -} - void MKLDNNExperimentalDetectronDetectionOutputNode::execute(mkldnn::stream strm) { const int rois_num = getParentEdgeAt(INPUT_ROIS)->getMemory().getStaticDims()[0]; assert(classes_num_ == static_cast(getParentEdgeAt(INPUT_SCORES)->getMemory().getStaticDims()[1])); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.h index 3c73bd036bb..eeb9ccb9399 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_detection_output_node.h @@ -15,7 +15,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.cpp index fc36c163484..88fd2f44abd 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.cpp @@ -320,12 +320,6 @@ void MKLDNNExperimentalDetectronGenerateProposalsSingleImageNode::initSupportedP impl_desc_type::ref_any); } -void MKLDNNExperimentalDetectronGenerateProposalsSingleImageNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } -} - void MKLDNNExperimentalDetectronGenerateProposalsSingleImageNode::execute(mkldnn::stream strm) { try { if (inputShapes.size() != 4 || outputShapes.size() != 2) { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.h index a18f41e5a94..d00ec14601c 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_generate_proposals_single_image_node.h @@ -16,7 +16,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.cpp index a30031d9b84..c4d544e0b39 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.cpp @@ -56,12 +56,6 @@ void MKLDNNExperimentalDetectronPriorGridGeneratorNode::initSupportedPrimitiveDe impl_desc_type::ref_any); } -void MKLDNNExperimentalDetectronPriorGridGeneratorNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } -} - void MKLDNNExperimentalDetectronPriorGridGeneratorNode::execute(mkldnn::stream strm) { const int num_priors_ = getParentEdgeAt(INPUT_PRIORS)->getMemory().getStaticDims()[0]; assert(getParentEdgeAt(INPUT_PRIORS)->getMemory().getStaticDims()[1] == 4); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.h index c908add3223..b1a39dade02 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_priorgridgenerator_node.h @@ -15,7 +15,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_roifeatureextractor_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_roifeatureextractor_node.h index aceba74e694..4ebf1467366 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_roifeatureextractor_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_roifeatureextractor_node.h @@ -15,7 +15,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override {}; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_topkrois_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_topkrois_node.h index 2f66469502e..7cefc63ee8d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_topkrois_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_experimental_detectron_topkrois_node.h @@ -15,7 +15,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override {}; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.cpp index 29faa1dac52..ccd98c5c2ae 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.cpp @@ -327,14 +327,6 @@ MKLDNNExtractImagePatchesNode::MKLDNNExtractImagePatchesNode(const std::shared_p IE_THROW() << errorPrefix << "must have the following attributes with shape {2}: sizes, strides, rates."; } -void MKLDNNExtractImagePatchesNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNExtractImagePatchesNode::prepareParams() { const auto& srcMemPtr0 = getParentEdgeAt(0)->getMemoryPtr(); const auto& dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); @@ -381,7 +373,7 @@ void MKLDNNExtractImagePatchesNode::execute(mkldnn::stream strm) { } void MKLDNNExtractImagePatchesNode::executeDynamicImpl(mkldnn::stream strm) { - return execute(strm); + execute(strm); } void MKLDNNExtractImagePatchesNode::ExtractImagePatchesRefExecutor::executeReference( diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.h index 62df89c9822..d35d9f48d3b 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_extract_image_patches_node.h @@ -45,7 +45,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.cpp index 319a41528e6..b658f1b82ab 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.cpp @@ -860,7 +860,15 @@ bool MKLDNNFakeQuantizeNode::isSupportedOperation(const std::shared_ptr 1 || not_unit_axis > 1) { + + /* @todo + * Channel axis 2 is added for 3D MatMul (most common one). + * FQ for non-1 channel fallbacks to reference implementation. + * Expected to be fused for 3D MatMul + * Long term idea: restore limitation for channel axis 1 and + * support fusing of unfolded FQ (see FakeQuantizeDecomposition transformation) + */ + if (count_not_unit_axis > 1 || !one_of(not_unit_axis, 1, 2)) { errorMessage = "Supports only per-tensor and per-channel quantizations"; return false; } @@ -1057,6 +1065,13 @@ MKLDNNFakeQuantizeNode::MKLDNNFakeQuantizeNode(const std::shared_ptrgetMemoryPtr(); auto &dstMemory = getChildEdgeAt(0)->getMemoryPtr(); @@ -1637,6 +1645,10 @@ void MKLDNNFakeQuantizeNode::executeQuantization(const std::unique_ptr 1 ? 1 : 0]; + const auto realAxisSize = dims[dims.size() > 1 ? 1 : 0]; const auto axisPaddedSize = rnd_up(realAxisSize, bufferAlignment); if (!isPostOpDataInitialized) { binarizationThresholds.resize(axisPaddedSize, 0); @@ -1671,73 +1681,76 @@ void MKLDNNFakeQuantizeNode::appendPostOps(mkldnn::post_ops& ops, const VectorDi std::fill(binarizationThresholds.begin() + realAxisSize, binarizationThresholds.end(), 0); } } - - ops.append_binarization(mkldnn::algorithm::binarization_depthwise, (const float*)&binarizationThresholds[0], (const float*)&binarizationOutputMask[0]); - - if (!isInputLowBroadcasted && !isOutputHighBroadcasted) { - isPostOpDataInitialized = true; - } } else { - if (!isPostOpDataInitialized) { - if (cropLow.size() > 1) - cropLow.resize(rnd_up(cropLow.size(), bufferAlignment), 0); - if (cropHigh.size() > 1) - cropHigh.resize(rnd_up(cropHigh.size(), bufferAlignment), 0); - if (inputScale.size() > 1) - inputScale.resize(rnd_up(inputScale.size(), bufferAlignment), 0); - if (inputShift.size() > 1) - inputShift.resize(rnd_up(inputShift.size(), bufferAlignment), 0); - if (outputScale.size() > 1) - outputScale.resize(rnd_up(outputScale.size(), bufferAlignment), 0); - if (outputShift.size() > 1) - outputShift.resize(rnd_up(outputShift.size(), bufferAlignment), 0); + if (cropLow.size() > 1) + cropLow.resize(rnd_up(cropLow.size(), bufferAlignment), 0); + if (cropHigh.size() > 1) + cropHigh.resize(rnd_up(cropHigh.size(), bufferAlignment), 0); + if (inputScale.size() > 1) + inputScale.resize(rnd_up(inputScale.size(), bufferAlignment), 0); + if (inputShift.size() > 1) + inputShift.resize(rnd_up(inputShift.size(), bufferAlignment), 0); + if (outputScale.size() > 1) + outputScale.resize(rnd_up(outputScale.size(), bufferAlignment), 0); + if (outputShift.size() > 1) + outputShift.resize(rnd_up(outputShift.size(), bufferAlignment), 0); - cropLowData.set(cropLow.size(), 1 << 1, &cropLow[0]); - cropHighData.set(cropHigh.size(), 1 << 1, &cropHigh[0]); - inputScaleData.set(inputScale.size(), 1 << 1, &inputScale[0]); - inputShiftData.set(inputShift.size(), 1 << 1, &inputShift[0]); - outputScaleData.set(outputScale.size(), 1 << 1, &outputScale[0]); - outputShiftData.set(outputShift.size(), 1 << 1, &outputShift[0]); - } + cropLowData.set(cropLow.size(), 1 << 1, &cropLow[0]); + cropHighData.set(cropHigh.size(), 1 << 1, &cropHigh[0]); + inputScaleData.set(inputScale.size(), 1 << 1, &inputScale[0]); + inputShiftData.set(inputShift.size(), 1 << 1, &inputShift[0]); + outputScaleData.set(outputScale.size(), 1 << 1, &outputScale[0]); + outputShiftData.set(outputShift.size(), 1 << 1, &outputShift[0]); + } + isPostOpDataInitialized = true; +} + +void MKLDNNFakeQuantizeNode::appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, int align) { + initializePostOpData(postOpDims, align); + + if (getAlgorithm() == FQBinarization) { + ops.append_binarization(mkldnn::algorithm::binarization_depthwise, (const float*)&binarizationThresholds[0], (const float*)&binarizationOutputMask[0]); + } else { mkldnn::algorithm alg = getAlgorithm() == FQCommon ? mkldnn::algorithm::quantization_quantize_dequantize : mkldnn::algorithm::quantization_quantize; - - if (initAsBinary) { - auto appendBinary = [&](const mkldnn::algorithm alg, const size_t dataSize, MKLDNNMemoryPtr &memPtr, const void *data) { - const auto rank = getOutputShapeAtPort(0).getRank(); - auto chIdx = rank > 1 ? 1 : 0; - - std::vector binaryShape(rank, 1); - binaryShape[chIdx] = dataSize; - - DnnlBlockedMemoryDesc memoryDesc(Precision::FP32, Shape(binaryShape)); - ops.append_binary(alg, memoryDesc.getDnnlDesc()); - - if (initBinaryMemory) { - memPtr.reset(new MKLDNNMemory(getEngine())); - memPtr->Create(memoryDesc, data); - } - }; - - appendBinary(mkldnn::algorithm::binary_min, cropHighSize, cropHighMemory, &cropHighData.shifts_[0]); - appendBinary(mkldnn::algorithm::binary_max, cropLowSize, cropLowMemory, &cropLowData.shifts_[0]); - appendBinary(mkldnn::algorithm::binary_mul, inputScaleSize, inputScaleMemory, &inputScaleData.scales_[0]); - appendBinary(mkldnn::algorithm::binary_add, inputShiftSize, inputShiftMemory, &inputShiftData.shifts_[0]); - if (alg == mkldnn::algorithm::quantization_quantize_dequantize) { - ops.append_eltwise(1.0f, mkldnn::algorithm::eltwise_round_half_to_even, 0, 0); - } - appendBinary(mkldnn::algorithm::binary_mul, outputScaleSize, outputScaleMemory, &outputScaleData.scales_[0]); - appendBinary(mkldnn::algorithm::binary_add, outputShiftSize, outputShiftMemory, &outputShiftData.shifts_[0]); - - } else { - ops.append_quantization(alg, &cropLowData, &cropHighData, &inputScaleData, &inputShiftData, &outputScaleData, &outputShiftData); - } - - isPostOpDataInitialized = true; + ops.append_quantization(alg, &cropLowData, &cropHighData, &inputScaleData, &inputShiftData, &outputScaleData, &outputShiftData); } } +void MKLDNNFakeQuantizeNode::appendBinPostOps(mkldnn::post_ops& ops, const VectorDims& postOpDims, std::vector& binaryPostOpsMem) { + static const size_t bufferAlignment = 1; + + initializePostOpData(postOpDims, bufferAlignment); + + VectorDims broadcastBinaryShape(postOpDims.size(), 1); + + auto appendBinary = [&](const mkldnn::algorithm alg, const size_t dataSize, MKLDNNMemoryPtr &memPtr, const void *data) { + DnnlBlockedMemoryDesc memoryDesc(Precision::FP32, dataSize == 1 ? Shape(broadcastBinaryShape) : Shape(postOpDims)); + ops.append_binary(alg, memoryDesc.getDnnlDesc()); + + if (!memPtr) { + memPtr.reset(new MKLDNNMemory(getEngine())); + memPtr->Create(memoryDesc, data); + + binaryPostOpsMem.push_back(memPtr); + } + }; + + mkldnn::algorithm alg = getAlgorithm() == FQCommon ? mkldnn::algorithm::quantization_quantize_dequantize : + mkldnn::algorithm::quantization_quantize; + + appendBinary(mkldnn::algorithm::binary_min, cropHighSize, cropHighMemory, &cropHighData.shifts_[0]); + appendBinary(mkldnn::algorithm::binary_max, cropLowSize, cropLowMemory, &cropLowData.shifts_[0]); + appendBinary(mkldnn::algorithm::binary_mul, inputScaleSize, inputScaleMemory, &inputScaleData.scales_[0]); + appendBinary(mkldnn::algorithm::binary_add, inputShiftSize, inputShiftMemory, &inputShiftData.shifts_[0]); + if (alg == mkldnn::algorithm::quantization_quantize_dequantize) { + ops.append_eltwise(1.0f, mkldnn::algorithm::eltwise_round_half_to_even, 0, 0); + } + appendBinary(mkldnn::algorithm::binary_mul, outputScaleSize, outputScaleMemory, &outputScaleData.scales_[0]); + appendBinary(mkldnn::algorithm::binary_add, outputShiftSize, outputShiftMemory, &outputShiftData.shifts_[0]); +} + MKLDNNFakeQuantizeNode::FakeQuantizeJitExecutor::FakeQuantizeJitExecutor(const jit_quantize_params &_jqp) { bool isBinarization = _jqp.op_type == FQBinarization; if (mayiuse(cpu::x64::avx512_common)) { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.h index af75677ab82..8f5770d720f 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fake_quantize_node.h @@ -70,10 +70,9 @@ public: void initSupportedPrimitiveDescriptors() override; void getSupportedDescriptors() override; - void createPrimitive() override; bool created() const override; void execute(mkldnn::stream strm) override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; size_t getAxis() const { return axis; } @@ -121,11 +120,22 @@ public: InferenceEngine::Precision getInputPrecision() const { return inputPrecision; } InferenceEngine::Precision getOutputPrecision() const { return outputPrecision; } - void appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims = {}, int align = -1, bool initAsBinary = false, - bool initBinaryMemory = false) override; + // MKLDNN quantization_injectors assumes that quantization data memory is always aligned on 16 + // by length of AVX512 vector register which is also enough for AVX2 and SSE42 implementations. + // Otherwise it can lead to buffer over-read and performance penalties due to denormals. + void appendPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims = {}, int align = 16) override; + void appendBinPostOps(mkldnn::post_ops& ops, const VectorDims &postOpDims, std::vector& binaryPostOpsMem) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; + enum BroadcastingPolicy { + PerChannel, // all FQ operations are per channel + PerTensor, // all FQ operations are per tensor + Mixed, // some per channel, some per tensor + }; + + BroadcastingPolicy getBroadcastingPolicy() const { return broadcastingPolicy; } + MKLDNNMemoryPtr cropLowMemory; MKLDNNMemoryPtr cropHighMemory; MKLDNNMemoryPtr inputScaleMemory; @@ -149,6 +159,7 @@ private: void init() override; std::vector getDataFormats() const; + void initializePostOpData(const VectorDims &postOpDims, const size_t bufferAlignment); void executeReference(); void executeBinarization(const std::unique_ptr &pKernel) const; void executeQuantization(const std::unique_ptr &pKernel) const; @@ -195,6 +206,8 @@ private: InferenceEngine::Precision outputPrecision = InferenceEngine::Precision::FP32; std::string errorPrefix; + + BroadcastingPolicy broadcastingPolicy; }; } // namespace MKLDNNPlugin diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.cpp index 68bad2f2f92..97c509083a3 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.cpp @@ -147,13 +147,7 @@ void MKLDNNFullyConnectedNode::createPrimitive() { else primArgs = {{DNNL_ARG_SRC, src}, {DNNL_ARG_WEIGHTS, getParentEdgeAt(WEIGHTS_ID)->getMemory().GetPrimitive()}, {DNNL_ARG_DST, dst}}; - auto post_ops = attr->get_post_ops(); - int idx = 0; - for (int i = 0; i < post_ops.len(); i++) { - if (post_ops.kind(i) == mkldnn::primitive::kind::binary) { - primArgs.insert({DNNL_ARG_ATTR_MULTIPLE_POST_OP(i) | DNNL_ARG_SRC_1, binaryPostOpsArgs[idx++]}); - } - } + appendPostOpArgs(*attr, primArgs, binaryPostOpsArgs); } void MKLDNNFullyConnectedNode::execute(mkldnn::stream strm) { @@ -183,42 +177,32 @@ bool MKLDNNFullyConnectedNode::canFuse(const MKLDNNNodePtr& node) const { return canFuseSimpleOperation(node); } -void MKLDNNFullyConnectedNode::setPostOps(mkldnn::primitive_attr &attr, bool initWeights = false, bool initAsBinary = false) { - bool initBinaryMemory = initWeights; +void MKLDNNFullyConnectedNode::setPostOps(mkldnn::primitive_attr &attr, bool initWeights = false) { mkldnn::post_ops ops; + auto getBinPostOpShape = [&](){ + const size_t binaryShapeRank = getOutputShapeAtPort(0).getRank() == 3 ? 2 : getOutputShapeAtPort(0).getRank(); + VectorDims binaryShape(binaryShapeRank, 1); + const size_t channelAxis = getFusingAxis(); + // always use 1 as channelAxis for binary Shape, since oneDNN primitive is actually always 2D + binaryShape[1] = getOutputShapeAtPort(0).getStaticDims()[channelAxis]; + + return binaryShape; + }; + for (auto &node : fusedWith) { - auto* fakeQuantizeNode = dynamic_cast(node.get()); - if (fakeQuantizeNode) { - // no need to fill post ops dims for fq, make sense only for bin fq - fakeQuantizeNode->appendPostOps(ops, VectorDims{}, -1, initAsBinary, initBinaryMemory); - if (initBinaryMemory) { - if (fakeQuantizeNode->cropHighMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->cropHighMemory->GetPrimitive()); - if (fakeQuantizeNode->cropLowMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->cropLowMemory->GetPrimitive()); - if (fakeQuantizeNode->inputScaleMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->inputScaleMemory->GetPrimitive()); - if (fakeQuantizeNode->inputShiftMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->inputShiftMemory->GetPrimitive()); - if (fakeQuantizeNode->outputScaleMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->outputScaleMemory->GetPrimitive()); - if (fakeQuantizeNode->outputShiftMemory) - binaryPostOpsArgs.push_back(fakeQuantizeNode->outputShiftMemory->GetPrimitive()); - } + if (auto* fakeQuantizeNode = dynamic_cast(node.get())) { + fakeQuantizeNode->appendBinPostOps(ops, getBinPostOpShape(), binaryPostOpsArgs); continue; } - auto* eltwiseNode = dynamic_cast(node.get()); - if (eltwiseNode) { + if (auto* eltwiseNode = dynamic_cast(node.get())) { // TODO [DS]: change to shape from memory constexpr int align = -1; - eltwiseNode->appendPostOps(ops, getOutputShapeAtPort(0).getStaticDims(), align, initAsBinary, initBinaryMemory); - if (initBinaryMemory) { - if (eltwiseNode->scalesMemory) - binaryPostOpsArgs.push_back(eltwiseNode->scalesMemory->GetPrimitive()); - if (eltwiseNode->shiftsMemory) - binaryPostOpsArgs.push_back(eltwiseNode->shiftsMemory->GetPrimitive()); + if (eltwiseNode->getMKLDNNAlgorithm() != mkldnn::algorithm::undef) { + eltwiseNode->appendPostOps(ops, getOutputShapeAtPort(0).getStaticDims(), align); + } else { + eltwiseNode->appendBinPostOps(ops, getBinPostOpShape(), binaryPostOpsArgs); } continue; } @@ -280,7 +264,7 @@ const std::vector& MKLDNNFullyConnectedNode::getPrimitivesPriori MKLDNNNode::AttrPtr MKLDNNFullyConnectedNode::initPrimitiveAttr() { auto attr = std::make_shared(mkldnn::primitive_attr()); - setPostOps(*attr, true, true); + setPostOps(*attr); return attr; } diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.h index 6749c9451c0..c8394bb1afd 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_fullyconnected_node.h @@ -26,6 +26,10 @@ public: return false; } + size_t getFusingAxis() const override { + return getOutputShapeAtPort(0).getRank() == 3 ? 2 : 1; + } + const std::vector& getPrimitivesPriority() override; void createDescriptor(const std::vector& inputDesc, const std::vector& outputDesc) override; @@ -43,8 +47,7 @@ public: static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; -protected: - AttrPtr initPrimitiveAttr(); + std::shared_ptr initPrimitiveAttr() override; private: void createDescriptorInternal(const mkldnn::memory::desc &inputDesc, @@ -54,7 +57,7 @@ private: InferenceEngine::SizeVector biasesDims; std::vector PostOpsIntBlobMemory; - void setPostOps(mkldnn::primitive_attr &attr, bool initWeights, bool initAsBinary); + void setPostOps(mkldnn::primitive_attr &attr, bool initWeights); bool withBiases = false; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.cpp index a13c1f76f8b..3dc51699118 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.cpp @@ -54,14 +54,6 @@ MKLDNNGatherElementsNode::MKLDNNGatherElementsNode(const std::shared_ptrgetMemory().getStaticDims(); const auto& dstDims = getChildEdgesAtPort(0)[0]->getMemory().getStaticDims(); @@ -102,6 +94,10 @@ void MKLDNNGatherElementsNode::initSupportedPrimitiveDescriptors() { impl_desc_type::ref_any); } +void MKLDNNGatherElementsNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + template void MKLDNNGatherElementsNode::directExecution() { const auto *srcData = reinterpret_cast(getParentEdgeAt(dataIndex_)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.h index 632076b08d7..f5d38944795 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_elements_node.h @@ -18,14 +18,13 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; protected: - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; void prepareParams() override; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.cpp index ae98c0e74ab..fc72e152713 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.cpp @@ -80,14 +80,6 @@ void MKLDNNGatherNDNode::initSupportedPrimitiveDescriptors() { impl_desc_type::ref_any); } -void MKLDNNGatherNDNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNGatherNDNode::prepareParams() { auto& srcMemPtr = getParentEdgeAt(GATHERND_DATA)->getMemoryPtr(); auto& idxMemPtr = getParentEdgeAt(GATHERND_INDEXES)->getMemoryPtr(); @@ -227,7 +219,7 @@ void MKLDNNGatherNDNode::GatherNDExecutor::gatherElementwise(const MKLDNNMemoryP }); } -void MKLDNNGatherNDNode::executeDynamicImpl(dnnl::stream strm) { +void MKLDNNGatherNDNode::executeDynamicImpl(mkldnn::stream strm) { execute(strm); } diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.h index 53661c4d342..29ff88b1466 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_nd_node.h @@ -18,7 +18,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.cpp index 0e44c0e4c3b..706ad37f8dc 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.cpp @@ -110,20 +110,12 @@ void MKLDNNGatherNode::prepareParams() { } bool MKLDNNGatherNode::needPrepareParams() const { - bool result = MKLDNNNode::needPrepareParams(); + bool result = inputShapesModified(); if (!isAxisInputConst) result = result || axis != (reinterpret_cast(getParentEdgeAt(GATHER_AXIS)->getMemoryPtr()->GetPtr()))[0]; return result; } -void MKLDNNGatherNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNGatherNode::execute(mkldnn::stream strm) { const int32_t* srcIndexes = reinterpret_cast(getParentEdgeAt(GATHER_INDEXES)->getMemoryPtr()->GetPtr()); const uint8_t* srcData = reinterpret_cast(getParentEdgeAt(GATHER_DATA)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.h index 1477f9325f2..df66ac52578 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_gather_node.h @@ -18,7 +18,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_input_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_input_node.cpp index e5f8e5691eb..4f73fb7c1ab 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_input_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_input_node.cpp @@ -109,7 +109,7 @@ protected: uni_vmovdqu(b, a); // b = a uni_vmovdqu(c, a); // c = a uni_vpcmpeqd(b, b, zero); // if (a == 0) b = 1 else b = 0 - uni_vpand(c, mask); // c = a & 01111111100000000000000000000000 + uni_vpand(c, c, mask); // c = a & 01111111100000000000000000000000 uni_vpcmpeqd(c, c, zero); // if (c == 0) c = 1 else c = 0 uni_vtestps(b, c); // if ((!b & c) == 0) CF = 1 else CF = 0 } diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_interpolate_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_interpolate_node.cpp index d828878bbb3..0f102e6dd28 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_interpolate_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_interpolate_node.cpp @@ -2075,7 +2075,7 @@ void MKLDNNInterpolateNode::createPrimitive() { interpAttrs.inPrc = srcMemPtr->getDesc().getPrecision(); interpAttrs.outPrc = dstMemPtr->getDesc().getPrecision(); - if (shapesDefined()) { + if (shapesDefined() && isExecutable()) { if (needPrepareParams()) prepareParams(); updateLastInputDims(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.cpp index 9f537b490fc..9ab047473a6 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.cpp @@ -60,14 +60,6 @@ void MKLDNNLogSoftmaxNode::initSupportedPrimitiveDescriptors() { impl_desc_type::ref_any); } -void MKLDNNLogSoftmaxNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNLogSoftmaxNode::prepareParams() { const auto &dims = getParentEdgesAtPort(0)[0]->getMemory().getStaticDims(); reducedAxisStride = 1; @@ -87,6 +79,10 @@ void MKLDNNLogSoftmaxNode::prepareParams() { reducedAxisStride *= dims[i]; } +void MKLDNNLogSoftmaxNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNLogSoftmaxNode::execute(mkldnn::stream strm) { const float *srcData = reinterpret_cast(getParentEdgeAt(0)->getMemoryPtr()->GetPtr()); float* dstData = reinterpret_cast(getChildEdgesAtPort(0)[0]->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.h index c7fd5aac3c2..b51e72ed0ff 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_log_softmax_node.h @@ -16,12 +16,11 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.cpp index e1430776725..72bc3e2d61a 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.cpp @@ -110,14 +110,6 @@ std::shared_ptr MKLDNNLrnNode::getSrcMemDesc(mkldnn::primitive_desc_ } } -void MKLDNNLrnNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNLrnNode::prepareParams() { auto& srcMemPtr = getParentEdgeAt(0)->getMemoryPtr(); auto& dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); @@ -174,8 +166,8 @@ std::vector MKLDNNLrnNode::shapeInfer() const { return { getParentEdgesAtPort(0).front()->getMemory().getStaticDims() }; } -void MKLDNNLrnNode::executeDynamicImpl(dnnl::stream strm) { - MKLDNNNode::execute(strm); +void MKLDNNLrnNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); } REG_MKLDNN_PRIM_FOR(MKLDNNLrnNode, Lrn); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.h index 97ef5163f43..348ecc3ae3a 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_lrn_node.h @@ -23,7 +23,6 @@ public: return static_cast(getOriginalInputsNumber()); } std::shared_ptr getSrcMemDesc(mkldnn::primitive_desc_iterator &primitive_desc_it, size_t idx) override; - void createPrimitive() override; bool created() const override; bool canBeInPlace() const override { return false; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.cpp index 163e76ca483..b90b14d1423 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.cpp @@ -63,6 +63,10 @@ std::vector MKLDNNMathNode::shapeInfer() const { return std::vector{getParentEdgesAtPort(0)[0]->getMemory().getStaticDims()}; } +void MKLDNNMathNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNMathNode::execute(mkldnn::stream strm) { size_t dataSize = getChildEdgesAtPort(0)[0]->getMemory().GetShape().getElementsCount(); const float *src_data = reinterpret_cast(getParentEdgeAt(0)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.h index ee2ce5d75b1..c580e7a1a64 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_math_node.h @@ -15,13 +15,12 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override {}; void execute(mkldnn::stream strm) override; bool created() const override; std::vector shapeInfer() const override; bool needPrepareParams() const override { return false; }; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.cpp index e9ebde02cff..5513a27f0d2 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.cpp @@ -17,6 +17,7 @@ #include "common/cpu_memcpy.h" #include #include "memory_desc/dnnl_blocked_memory_desc.h" +#include "nodes/mkldnn_fake_quantize_node.h" #include "utils/general_utils.h" #include "memory_desc/cpu_memory_desc_utils.h" #include "mkldnn_extension_utils.h" @@ -54,31 +55,65 @@ bool MKLDNNMatMulNode::isSupportedOperation(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache) : - MKLDNNNode(op, eng, cache) { + MKLDNNNode(op, eng, cache), withBiases(false) { std::string errorMessage; + errorPrefix = "MatMul node with name '" + getName() + "'"; + if (!isSupportedOperation(op, errorMessage)) IE_THROW(NotImplemented) << errorMessage; - errorPrefix = "MatMul node with name '" + getName() + "'"; - const auto matMul = std::dynamic_pointer_cast(op); + if (!matMul) { + IE_THROW(NotImplemented) << "Operation with name " << op->get_friendly_name() << ":" << op->get_type_name() << + " is not an instance of MatMul from opset1"; + } + transposeIn[0] = matMul->get_transpose_a(); transposeIn[1] = matMul->get_transpose_b(); } bool MKLDNNMatMulNode::canFuse(const MKLDNNNodePtr& node) const { - return one_of(node->getAlgorithm(), EltwiseRelu, EltwiseGelu, EltwiseElu, EltwiseSigmoid, EltwiseClamp, EltwiseTanh, - EltwiseSwish, EltwiseHswish, EltwiseMish, EltwiseHsigmoid, EltwiseRoundHalfToEven, - EltwiseRoundHalfAwayFromZero, EltwiseAbs, EltwiseSqrt, EltwiseSoftRelu); + // per channel binary post op for rank > 2D is supported only by oneDNN reference implementation because of unusual MatMul channel axis (issue 6669) + if (getOutputShapeAtPort(0).getRank() > 2) { + if (const auto* eltwiseNode = dynamic_cast(node.get())) { + if (one_of(eltwiseNode->getAlgorithm(), + EltwiseAdd, EltwiseMultiply, EltwiseSubtract, EltwiseDivide, EltwisePrelu, EltwiseMulAdd, EltwisePowerStatic) && + eltwiseNode->getBroadcastingPolicy() != MKLDNNEltwiseNode::PerTensor) { + return false; + } + } else if (const auto* fakeQuantizeNode = dynamic_cast(node.get())) { + if (fakeQuantizeNode->getBroadcastingPolicy() != MKLDNNFakeQuantizeNode::PerTensor) { + return false; + } + } + } + + return canFuseSimpleOperation(node); } -void MKLDNNMatMulNode::setPostOps(mkldnn::primitive_attr &attr, const VectorDims& dims, bool initWeights = false) const { +void MKLDNNMatMulNode::setPostOps(mkldnn::primitive_attr &attr, const VectorDims& dims, bool initWeights = false) { mkldnn::post_ops ops; - for (auto &node : fusedWith) { + auto getBinPostOpShape = [&](){ + const auto outShapeRank = dims.size(); + const auto chIdx = getFusingAxis(); + std::vector binaryShape(outShapeRank, 1); + binaryShape[chIdx] = dims[chIdx]; + return binaryShape; + }; + + for (const auto &node : fusedWith) { if (auto* eltwiseNode = dynamic_cast(node.get())) { - eltwiseNode->appendPostOps(ops, dims); + // TODO [DS]: change to shape from memory + if (eltwiseNode->getMKLDNNAlgorithm() != mkldnn::algorithm::undef) { + eltwiseNode->appendPostOps(ops, dims); + } else { + eltwiseNode->appendBinPostOps(ops, getBinPostOpShape(), binaryPostOpsArgs); + } + continue; + } else if (auto* fakeQuantizeNode = dynamic_cast(node.get())) { + fakeQuantizeNode->appendBinPostOps(ops, getBinPostOpShape(), binaryPostOpsArgs); continue; } @@ -88,8 +123,7 @@ void MKLDNNMatMulNode::setPostOps(mkldnn::primitive_attr &attr, const VectorDims attr.set_post_ops(ops); } - -MKLDNNNode::AttrPtr MKLDNNMatMulNode::initPrimitiveAttr(const VectorDims &dims) const { +MKLDNNNode::AttrPtr MKLDNNMatMulNode::initPrimitiveAttr(const VectorDims &dims) { auto attr = std::make_shared(mkldnn::primitive_attr()); setPostOps(*attr, dims, true); @@ -97,7 +131,7 @@ MKLDNNNode::AttrPtr MKLDNNMatMulNode::initPrimitiveAttr(const VectorDims &dims) return attr; } -MKLDNNNode::AttrPtr MKLDNNMatMulNode::initPrimitiveAttr() const { +MKLDNNNode::AttrPtr MKLDNNMatMulNode::initPrimitiveAttr() { auto dummyShape = MemoryDescUtils::makeDummyShape(getOutputShapeAtPort(0)); return initPrimitiveAttr(dummyShape.getStaticDims()); } @@ -131,12 +165,29 @@ static VectorDims getStridesAndModifyShape(Shape& shape, const bool transpose) { return strides; } +mkldnn::memory::desc MKLDNNMatMulNode::getBiasDescFrom(const DnnlMemoryDescCPtr outMemDesc) { + // oneDNN matmul requires shape for bias desc to be the same rank + VectorDims biasDims(outMemDesc->getShape().getRank(), 1); + const auto outDims = outMemDesc->getShape().getStaticDims(); + const auto chIdx = getFusingAxis(); + biasDims[chIdx] = outDims[chIdx]; + const auto bdt = MKLDNNExtensionUtils::IEPrecisionToDataType(getOriginalInputPrecisionAtPort(2)); + + return mkldnn::memory::desc(MKLDNNExtensionUtils::convertToDnnlDims(biasDims), bdt, memory::format_tag::any); +} + void MKLDNNMatMulNode::getSupportedDescriptors() { - if (getParentEdges().size() != 2) + if (getParentEdges().size() != getOriginalInputsNumber()) IE_THROW() << errorPrefix << " has incorrect number of input edges for layer " << getName(); if (getChildEdges().empty()) IE_THROW() << errorPrefix << " has incorrect number of output edges for layer " << getName(); + withBiases = getOriginalInputsNumber() == 3; + + auto canBeExecutedInInt8 = [](const Precision firstInput, const Precision secondInput) { + return one_of(firstInput, Precision::U8, Precision::I8) && secondInput == Precision::I8; + }; + auto firstInPortPrec = getOriginalInputPrecisionAtPort(0); auto secondInPortPrec = getOriginalInputPrecisionAtPort(1); auto outPortPrec = getOriginalOutputPrecisionAtPort(0); @@ -154,6 +205,9 @@ void MKLDNNMatMulNode::getSupportedDescriptors() { outPortPrec = fusedWith[fusedWith.size() - 1]->getOriginalOutputPrecisionAtPort(0); } + if (!canBeExecutedInInt8(firstInPortPrec, secondInPortPrec) && one_of(outPortPrec, Precision::U8, Precision::I8)) + outPortPrec = Precision::FP32; // INT output is not supported for non-INT inputs + const auto& inputShape0 = getInputShapeAtPort(0); const auto& inputShape1 = getInputShapeAtPort(1); const auto& outputShape = getOutputShapeAtPort(0); @@ -206,12 +260,19 @@ void MKLDNNMatMulNode::getSupportedDescriptors() { void MKLDNNMatMulNode::createDescriptor(const std::vector& inputDesc, const std::vector& outputDesc) { - MKLDNNDescriptor desc{ - std::make_shared(inDataDesc[0]->getDnnlDesc(), - inDataDesc[1]->getDnnlDesc(), - outDataDesc->getDnnlDesc())}; + std::shared_ptr matmul_desc; + if (withBiases) { + matmul_desc.reset(new matmul::desc(inDataDesc[0]->getDnnlDesc(), + inDataDesc[1]->getDnnlDesc(), + getBiasDescFrom(outDataDesc), + outDataDesc->getDnnlDesc())); + } else { + matmul_desc.reset(new matmul::desc(inDataDesc[0]->getDnnlDesc(), + inDataDesc[1]->getDnnlDesc(), + outDataDesc->getDnnlDesc())); + } - descs.push_back(desc); + descs.emplace_back(matmul_desc); } void MKLDNNMatMulNode::initSupportedPrimitiveDescriptors() { @@ -252,19 +313,15 @@ void MKLDNNMatMulNode::initSupportedPrimitiveDescriptors() { } } -void MKLDNNMatMulNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - MemoryDescPtr MKLDNNMatMulNode::getSrcMemDesc(mkldnn::primitive_desc_iterator &primitive_desc_it, size_t idx) { auto desc = idx > 0 ? primitive_desc_it.weights_desc(idx - 1): primitive_desc_it.src_desc(idx); - return std::make_shared( - MKLDNNExtensionUtils::DataTypeToIEPrecision(static_cast(desc.data.data_type)), - getInputShapeAtPort(idx)); /* provide initial shapes, so hide transpose effect */ + + if (idx < 2) // inputs + return std::make_shared( + MKLDNNExtensionUtils::DataTypeToIEPrecision(static_cast(desc.data.data_type)), + getInputShapeAtPort(idx)); /* provide initial shapes, so hide transpose effect */ + else // bias + return MKLDNNExtensionUtils::makeDescriptor(desc); } bool MKLDNNMatMulNode::created() const { @@ -300,10 +357,7 @@ void MKLDNNMatMulNode::prepareParams() { AttrPtr attr; if (isDynamicNode()) { - if (!pAttr) { - pAttr = initPrimitiveAttr(src0MemPtr->getStaticDims()); - } - attr = pAttr; + attr = initPrimitiveAttr(dstMemPtr->getStaticDims()); const auto& src0Desc = src0MemPtr->getDesc(); const auto& src1Desc = src1MemPtr->getDesc(); @@ -323,13 +377,22 @@ void MKLDNNMatMulNode::prepareParams() { auto dstDnnlDesc = dstMemPtr->GetDescWithType(); - MKLDNNDescriptor desc{ - std::make_shared(src0TransposedDesc->getDnnlDesc(), - src1TransposedDesc->getDnnlDesc(), - dstDnnlDesc->getDnnlDesc())}; + std::shared_ptr matmul_desc; - matmul::primitive_desc prim_desc; + if (withBiases) { + matmul_desc.reset(new mkldnn::matmul::desc{src0TransposedDesc->getDnnlDesc(), + src1TransposedDesc->getDnnlDesc(), + getBiasDescFrom(dstDnnlDesc), + dstDnnlDesc->getDnnlDesc()}); + } else { + matmul_desc.reset(new mkldnn::matmul::desc(src0TransposedDesc->getDnnlDesc(), + src1TransposedDesc->getDnnlDesc(), + dstDnnlDesc->getDnnlDesc())); + } + + MKLDNNDescriptor desc(matmul_desc); primitive_desc_iterator itpd = desc.createPrimitiveDescriptorIterator(getEngine(), *attr); + matmul::primitive_desc prim_desc; while (static_cast(itpd)) { impl_desc_type impl_type = parse_impl_name(itpd.impl_info_str()); @@ -347,6 +410,10 @@ void MKLDNNMatMulNode::prepareParams() { primArgs[DNNL_ARG_SRC_0] = src0MemPtr->GetPrimitive(); primArgs[DNNL_ARG_WEIGHTS_0] = src1MemPtr->GetPrimitive(); primArgs[DNNL_ARG_DST] = dstMemPtr->GetPrimitive(); + if (withBiases) + primArgs[DNNL_ARG_BIAS] = getParentEdgeAt(2)->getMemoryPtr()->GetPrimitive(); + + appendPostOpArgs(*attr, primArgs, binaryPostOpsArgs); } void MKLDNNMatMulNode::executeDynamicImpl(dnnl::stream strm) { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.h index 9c9489df237..2d7e8c00e60 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matmul_node.h @@ -22,7 +22,6 @@ public: const std::vector& outputDesc) override; void initSupportedPrimitiveDescriptors() override; MemoryDescPtr getSrcMemDesc(mkldnn::primitive_desc_iterator &primitive_desc_it, size_t idx) override; - void createPrimitive() override; bool canFuse(const MKLDNNNodePtr& node) const override; bool created() const override; size_t getMaxBatch() const override; @@ -32,6 +31,10 @@ public: return getOriginalInputsNumber(); } + size_t getFusingAxis() const override { + return getOutputShapeAtPort(0).getRank() - 1; + } + void prepareParams() override; void executeDynamicImpl(mkldnn::stream strm) override; @@ -39,11 +42,15 @@ public: const std::vector& getPrimitivesPriority() override; protected: - AttrPtr initPrimitiveAttr() const override; - AttrPtr initPrimitiveAttr(const VectorDims& dims) const; + AttrPtr initPrimitiveAttr() override; + AttrPtr initPrimitiveAttr(const VectorDims& dims); private: - void setPostOps(mkldnn::primitive_attr &attr, const VectorDims& dims, bool initWeights) const; + mkldnn::memory::desc getBiasDescFrom(const DnnlMemoryDescCPtr outMemDesc); + + bool withBiases; + + void setPostOps(mkldnn::primitive_attr &attr, const VectorDims& dims, bool initWeights); std::string errorPrefix; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.cpp index b01aa731e68..c9668785548 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.cpp @@ -240,13 +240,6 @@ size_t MKLDNNMatrixNmsNode::nmsMatrix(const float* boxesData, const float* score return numDet; } -void MKLDNNMatrixNmsNode::createPrimitive() { - if (inputShapesDefined()) { - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNMatrixNmsNode::prepareParams() { const auto& boxes_dims = getParentEdgeAt(NMS_BOXES)->getMemory().getStaticDims(); const auto& scores_dims = getParentEdgeAt(NMS_SCORES)->getMemory().getStaticDims(); @@ -288,6 +281,23 @@ void MKLDNNMatrixNmsNode::prepareParams() { } } +bool MKLDNNMatrixNmsNode::isExecutable() const { + return isDynamicNode() || MKLDNNNode::isExecutable(); +} + +void MKLDNNMatrixNmsNode::executeDynamicImpl(mkldnn::stream strm) { + if (hasEmptyInputTensors()) { + getChildEdgesAtPort(NMS_SELECTED_OUTPUTS)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_SELECTED_OUTPUTS)->cloneWithNewDims({0, 6})); + getChildEdgesAtPort(NMS_SELECTED_INDICES)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_SELECTED_INDICES)->cloneWithNewDims({0, 1})); + getChildEdgesAtPort(NMS_VALID_OUTPUTS)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_VALID_OUTPUTS)->cloneWithNewDims({0})); + return; + } + execute(strm); +} + void MKLDNNMatrixNmsNode::execute(mkldnn::stream strm) { const float* boxes = reinterpret_cast(getParentEdgeAt(NMS_BOXES)->getMemoryPtr()->GetPtr()); const float* scores = reinterpret_cast(getParentEdgeAt(NMS_SCORES)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.h index 338247cf103..add276f3dc6 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_matrix_nms_node.h @@ -27,13 +27,13 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + bool isExecutable() const override; + void executeDynamicImpl(mkldnn::stream strm) override; bool needShapeInfer() const override { return false; } void prepareParams() override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.cpp index 85d13de3829..15d810fbb4d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.cpp @@ -105,13 +105,6 @@ void MKLDNNMultiClassNmsNode::initSupportedPrimitiveDescriptors() { impl_desc_type::ref_any); } -void MKLDNNMultiClassNmsNode::createPrimitive() { - if (inputShapesDefined()) { - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNMultiClassNmsNode::prepareParams() { const auto& boxes_dims = getParentEdgeAt(NMS_BOXES)->getMemory().getStaticDims(); const auto& scores_dims = getParentEdgeAt(NMS_SCORES)->getMemory().getStaticDims(); @@ -145,6 +138,23 @@ void MKLDNNMultiClassNmsNode::prepareParams() { m_numBoxOffset.resize(m_numBatches); } +bool MKLDNNMultiClassNmsNode::isExecutable() const { + return isDynamicNode() || MKLDNNNode::isExecutable(); +} + +void MKLDNNMultiClassNmsNode::executeDynamicImpl(mkldnn::stream strm) { + if (hasEmptyInputTensors()) { + getChildEdgesAtPort(NMS_SELECTEDOUTPUTS)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_SELECTEDOUTPUTS)->cloneWithNewDims({0, 6})); + getChildEdgesAtPort(NMS_SELECTEDINDICES)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_SELECTEDINDICES)->cloneWithNewDims({0, 1})); + getChildEdgesAtPort(NMS_SELECTEDNUM)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_SELECTEDNUM)->cloneWithNewDims({0})); + return; + } + execute(strm); +} + void MKLDNNMultiClassNmsNode::execute(mkldnn::stream strm) { const float* boxes = reinterpret_cast(getParentEdgeAt(NMS_BOXES)->getMemoryPtr()->GetPtr()); const float* scores = reinterpret_cast(getParentEdgeAt(NMS_SCORES)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.hpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.hpp index 6acf3755001..3c1e928bbf0 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.hpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_multiclass_nms.hpp @@ -23,13 +23,13 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + bool isExecutable() const override; + void executeDynamicImpl(mkldnn::stream strm) override; bool needShapeInfer() const override { return false; } void prepareParams() override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.cpp index e8e913ecb9a..cb6496100eb 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.cpp @@ -849,14 +849,6 @@ void MKLDNNMVNNode::prepareParams() { } } -void MKLDNNMVNNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNMVNNode::transformTo5DCase(const SizeVector& shape) { switch (shape.size()) { // for 1 and 2 rank, if initAcrossChannels_ is true, adjust shape to fully vectorize under unified 5d procedure. @@ -908,6 +900,10 @@ void MKLDNNMVNNode::setPostOps(mkldnn::primitive_attr &attr, bool initWeights) { attr.set_post_ops(ops); } +void MKLDNNMVNNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNMVNNode::execute(mkldnn::stream strm) { auto &dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); auto &srcMemPtr = getParentEdgeAt(0)->getMemoryPtr(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.h index 0c740ba9fb1..9b4fe9fff14 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_mvn_node.h @@ -77,10 +77,9 @@ public: static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; bool created() const override; void execute(mkldnn::stream strm) override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; bool canBeInPlace() const override { return false; } diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.cpp index 6bd0e44ae8c..5cb090a6951 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.cpp @@ -147,14 +147,20 @@ void MKLDNNNonMaxSuppressionNode::prepareParams() { i.resize(num_classes); } -void MKLDNNNonMaxSuppressionNode::createPrimitive() { - if (inputShapesDefined()) { - prepareParams(); - updateLastInputDims(); - } +bool MKLDNNNonMaxSuppressionNode::isExecutable() const { + return isDynamicNode() || MKLDNNNode::isExecutable(); } void MKLDNNNonMaxSuppressionNode::executeDynamicImpl(mkldnn::stream strm) { + if (hasEmptyInputTensors() || (inputShapes.size() > NMS_MAXOUTPUTBOXESPERCLASS && + reinterpret_cast(getParentEdgeAt(NMS_MAXOUTPUTBOXESPERCLASS)->getMemoryPtr()->GetPtr())[0] == 0)) { + getChildEdgesAtPort(NMS_SELECTEDINDICES)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_SELECTEDINDICES)->cloneWithNewDims({0, 3})); + getChildEdgesAtPort(NMS_SELECTEDSCORES)[0]->getMemoryPtr()->redefineDesc( + getBaseMemDescAtOutputPort(NMS_SELECTEDSCORES)->cloneWithNewDims({0, 3})); + *reinterpret_cast(getChildEdgesAtPort(NMS_VALIDOUTPUTS)[0]->getMemoryPtr()->GetPtr()) = 0; + return; + } execute(strm); } @@ -168,8 +174,9 @@ void MKLDNNNonMaxSuppressionNode::execute(mkldnn::stream strm) { max_output_boxes_per_class = std::min(max_output_boxes_per_class, num_boxes); - if (max_output_boxes_per_class == 0) + if (max_output_boxes_per_class == 0) { return; + } if (inputShapes.size() > NMS_IOUTHRESHOLD) iou_threshold = reinterpret_cast(getParentEdgeAt(NMS_IOUTHRESHOLD)->getMemoryPtr()->GetPtr())[0]; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.h index fd8ecc94d6b..e30ffcdc65d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_max_suppression_node.h @@ -20,7 +20,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; @@ -52,6 +51,7 @@ public: void executeDynamicImpl(mkldnn::stream strm) override; + bool isExecutable() const override; bool needShapeInfer() const override { return false; } void prepareParams() override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.cpp index f6e0624a4ba..5e270ba56cc 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.cpp @@ -85,6 +85,11 @@ struct MKLDNNNonZeroNode::NonZeroExecute { ctx.node.executeSpecified(); } }; + +void MKLDNNNonZeroNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNNonZeroNode::execute(mkldnn::stream strm) { auto inputPrec = getParentEdgesAtPort(0)[0]->getMemory().getDesc().getPrecision(); NonZeroContext ctx = {*this }; @@ -104,6 +109,7 @@ void MKLDNNNonZeroNode::executeSpecified() { Shape inShape = getParentEdgeAt(0)->getMemory().GetShape(); size_t inRank = inShape.getRank(); size_t nonZeroCount = getNonZeroElementsCount(src, inShape); + if (isDynamicNode()) { VectorDims newDims{inRank, nonZeroCount}; dstMemPtr->redefineDesc(getBaseMemDescAtOutputPort(0)->cloneWithNewDims(newDims)); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.h index 2f46042a331..a454a2da268 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_non_zero.h @@ -18,15 +18,11 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override { - if (inputShapesDefined()) - updateLastInputDims(); - }; void execute(mkldnn::stream strm) override; bool created() const override; bool needShapeInfer() const override {return false;}; bool needPrepareParams() const override {return false;}; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.cpp index 90ff314da8a..3e350b39613 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.cpp @@ -854,12 +854,20 @@ void MKLDNNNormalizeL2Node::createPrimitive() { } } +bool MKLDNNNormalizeL2Node::isExecutable() const { + return !isInputTensorAtPortEmpty(0); +} + void MKLDNNNormalizeL2Node::prepareParams() { const auto& dims = getParentEdgeAt(DATA)->getMemoryPtr()->getStaticDims(); setPostOps(kernel_attrs, dims, true); execPtr = NormalizeL2Executor::getNormalizeL2Executor(attrs, kernel_attrs, dims); } +void MKLDNNNormalizeL2Node::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNNormalizeL2Node::execute(mkldnn::stream strm) { if (!execPtr) THROW_ERROR << "doesn't have a compiled executor."; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.h index 1086acdcf8c..dd6a44f9c16 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_normalize_node.h @@ -91,7 +91,9 @@ public: std::vector shapeInfer() const override; void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; + + bool isExecutable() const override; private: enum class NormEpsMode { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.cpp index dbd6f0fafc6..f016d80c349 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.cpp @@ -137,6 +137,10 @@ void MKLDNNOneHotNode::one_hot(size_t prefix_size, size_t suffix_size) { }); } +void MKLDNNOneHotNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNOneHotNode::execute(mkldnn::stream strm) { std::size_t prefix_size = 1; auto input_dims = getParentEdgeAt(0)->getMemory().getStaticDims(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.h index 52e44acf026..9d43911d3f2 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_one_hot_node.h @@ -26,7 +26,7 @@ public: bool needShapeInfer() const override; std::vector shapeInfer() const override; bool needPrepareParams() const override { return false; }; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.cpp index db4eb862921..40d80ca409b 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.cpp @@ -227,6 +227,10 @@ void MKLDNNPadNode::createPrimitive() { } } +bool MKLDNNPadNode::isExecutable() const { + return !isOutputTensorAtPortEmpty(0); +} + void MKLDNNPadNode::prepareParams() { execPtr = std::make_shared(attrs, getParentEdgeAt(0)->getMemoryPtr()->GetDescWithType()->getBlockDims(), @@ -237,8 +241,15 @@ MKLDNNPadNode::PadExecutor::PadExecutor(const PadAttrs& attrs, const VectorDims& srcDims, const VectorDims& dstDims) { params.attrs = attrs; - params.srcDims = srcDims; params.dstDims = dstDims; + + zeroInputDimsCase = std::any_of(srcDims.begin(), srcDims.end(), [](size_t dim) { return dim == 0; } ) && + std::none_of(dstDims.begin(), dstDims.end(), [](size_t dim) { return dim == 0; } ); + if (zeroInputDimsCase) { + return; + } + + params.srcDims = srcDims; params.dataSize = attrs.prc.size(); size_t nDims = params.srcDims.size(); @@ -289,19 +300,23 @@ MKLDNNPadNode::PadExecutor::PadExecutor(const PadAttrs& attrs, } void MKLDNNPadNode::PadExecutor::exec(MKLDNNMemoryPtr& srcMemPtr, MKLDNNMemoryPtr& dstMemPtr) { - switch (params.attrs.padMode) { - case CONSTANT: - padConstant(srcMemPtr, dstMemPtr); - break; - case EDGE: - padEdge(srcMemPtr, dstMemPtr); - break; - case REFLECT: - padReflectOrSymmetric(srcMemPtr, dstMemPtr); - break; - case SYMMETRIC: - padReflectOrSymmetric(srcMemPtr, dstMemPtr, true); - break; + if (zeroInputDimsCase) { + padConstant(srcMemPtr, dstMemPtr); + } else { + switch (params.attrs.padMode) { + case CONSTANT: + padConstant(srcMemPtr, dstMemPtr); + break; + case EDGE: + padEdge(srcMemPtr, dstMemPtr); + break; + case REFLECT: + padReflectOrSymmetric(srcMemPtr, dstMemPtr); + break; + case SYMMETRIC: + padReflectOrSymmetric(srcMemPtr, dstMemPtr, true); + break; + } } } @@ -335,7 +350,7 @@ static inline void parallel_step(size_t nDims, const VectorDims& dims, VectorDim } void MKLDNNPadNode::PadExecutor::padConstant(MKLDNNMemoryPtr& srcMemPtr, MKLDNNMemoryPtr& dstMemPtr) { - if (params.attrs.padValue == 0) { + if (params.attrs.padValue == 0 && !zeroInputDimsCase) { padConstantZero(srcMemPtr, dstMemPtr); return; } @@ -351,10 +366,16 @@ void MKLDNNPadNode::PadExecutor::padConstant(MKLDNNMemoryPtr& srcMemPtr, MKLDNNM template void MKLDNNPadNode::PadExecutor::padConstantCommon(MKLDNNMemoryPtr& srcMemPtr, MKLDNNMemoryPtr& dstMemPtr) { - const T* srcData = reinterpret_cast(srcMemPtr->GetPtr()); T* dstData = reinterpret_cast(dstMemPtr->GetPtr()); const T value = static_cast(params.attrs.padValue); + if (zeroInputDimsCase) { + const auto workAmount = dstMemPtr->GetDescWithType()->getPaddedElementsCount(); + parallel_for(workAmount, [&](size_t i) { + dstData[i] = value; + }); + } + const T* srcData = reinterpret_cast(srcMemPtr->GetPtr()); const size_t beginShift = params.attrs.padsBegin[params.nDimsForWork] * params.shift; const size_t copySize = params.srcDims[params.nDimsForWork] * params.shift; const size_t endShift = params.attrs.padsEnd[params.nDimsForWork] * params.shift; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.h index 74189292fd8..d8beaac96cd 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pad_node.h @@ -23,6 +23,8 @@ public: void prepareParams() override; + bool isExecutable() const override; + protected: void executeDynamicImpl(mkldnn::stream strm) override; @@ -71,6 +73,8 @@ private: } }; + bool zeroInputDimsCase = false; + struct { PadAttrs attrs; VectorDims srcDims; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.cpp index 379253233ee..2de486d6f8d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.cpp @@ -273,12 +273,8 @@ void MKLDNNPoolingNode::prepareParams() { primArgs = {{DNNL_ARG_SRC, src}, {DNNL_ARG_DST, dst}}; } -void MKLDNNPoolingNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } +void MKLDNNPoolingNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); } bool MKLDNNPoolingNode::created() const { @@ -511,7 +507,7 @@ void MKLDNNPoolingNode::initDescriptor(const NodeConfig& config) { selectedPD->setConfig(rightConfig); } -MKLDNNNode::AttrPtr MKLDNNPoolingNode::initPrimitiveAttr() const { +MKLDNNNode::AttrPtr MKLDNNPoolingNode::initPrimitiveAttr() { auto attr = std::make_shared(mkldnn::primitive_attr()); setPostOps(*attr, true); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.h index f3a6fc781cc..a60423cd036 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_pooling_node.h @@ -22,19 +22,18 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; void initDescriptor(const NodeConfig& config) override; - void createPrimitive() override; bool created() const override; bool canBeInPlace() const override { return false; } void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; protected: - AttrPtr initPrimitiveAttr() const override; + AttrPtr initPrimitiveAttr() override; private: void setPostOps(mkldnn::primitive_attr &attr, bool initWeights = false) const; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.cpp index 1d3f2ff60d1..7309d578c33 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.cpp @@ -155,6 +155,10 @@ void MKLDNNProposalNode::initSupportedPrimitiveDescriptors() { } } +void MKLDNNProposalNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNProposalNode::execute(mkldnn::stream strm) { try { const float* probabilitiesData = reinterpret_cast(getParentEdgeAt(PROBABILITIES_IN_IDX)->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.h index 0c0c6d443a8..ac6272f8a51 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_proposal_node.h @@ -18,12 +18,11 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override {}; void execute(mkldnn::stream strm) override; bool created() const override; bool needPrepareParams() const override { return false; }; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.cpp index bfc0d63f446..10e9d14c6ba 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.cpp @@ -83,6 +83,10 @@ void MKLDNNRangeNode::initSupportedPrimitiveDescriptors() { } } +void MKLDNNRangeNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNRangeNode::execute(mkldnn::stream strm) { StatusCode retcode = OK; switch (getParentEdgeAt(0)->getMemory().getDesc().getPrecision()) { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.h index d7b600e3f27..720c3111729 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_range_node.h @@ -15,15 +15,11 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override { - if (inputShapesDefined()) - updateLastInputDims(); - }; void execute(mkldnn::stream strm) override; bool created() const override; bool needPrepareParams() const override {return false;}; bool needShapeInfer() const override {return false;}; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.cpp index 4ccaf709471..aa78c2e9304 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.cpp @@ -1827,6 +1827,10 @@ void MKLDNNReduceNode::initSupportedPrimitiveDescriptors() { } } +bool MKLDNNReduceNode::isExecutable() const { + return !isInputTensorAtPortEmpty(REDUCE_DATA); +} + void MKLDNNReduceNode::prepareParams() { src_dims = getParentEdgesAtPort(REDUCE_DATA)[0]->getMemory().getDesc().getShape().getDims(); std::vector reduce_axes; @@ -1864,6 +1868,9 @@ void MKLDNNReduceNode::prepareParams() { } void MKLDNNReduceNode::createPrimitive() { + if (!isExecutable()) { + return; + } auto &dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); auto &srcMemPtr = getParentEdgeAt(REDUCE_DATA)->getMemoryPtr(); if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) @@ -1919,6 +1926,10 @@ void MKLDNNReduceNode::createPrimitive() { jit_mode = jit_mode && reduce_kernel; } +void MKLDNNReduceNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNReduceNode::execute(mkldnn::stream strm) { auto &dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); auto &srcMemPtr = getParentEdgeAt(REDUCE_DATA)->getMemoryPtr(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.h index 07effa0891f..9e3541a5a1d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reduce_node.h @@ -90,12 +90,13 @@ public: void createPrimitive() override; bool created() const override; void execute(mkldnn::stream strm) override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; bool canFuse(const MKLDNNNodePtr& node) const override; bool canBeInPlace() const override { return false; } + bool isExecutable() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.cpp index 02ccf1b546b..4ebeba5c587 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.cpp @@ -19,6 +19,10 @@ using namespace mkldnn; using namespace MKLDNNPlugin; using namespace InferenceEngine; +bool MKLDNNReorderNode::isExecutable() const { + return MKLDNNNode::isExecutable() && !isOptimized; +} + MKLDNNReorderNode::MKLDNNReorderNode(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &w_cache) : MKLDNNNode(op, eng, w_cache) { IE_THROW() << "Can't create reorder node from ngraph node"; @@ -100,6 +104,10 @@ void MKLDNNReorderNode::createPrimitive() { } } +void MKLDNNReorderNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNReorderNode::prepareParams() { if (!isOptimized) { auto &srcMemPtr = getParentEdgeAt(0)->getMemoryPtr(); @@ -348,6 +356,10 @@ void MKLDNNReorderNode::reorderData(const MKLDNNMemory &input, const MKLDNNMemor if (!input.getDesc().isDefined() || !output.getDesc().isDefined()) IE_THROW() << "Can't reorder data with dynamic shapes"; + if (input.GetShape().hasZeroDims() || output.GetShape().hasZeroDims()) { + return; + } + if (size != 0) IE_ASSERT(size <= output.GetSize()); if (input.getDesc().isCompatible(output.getDesc())) { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.h index 1ccb23768d3..cad52fe3998 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorder_node.h @@ -24,9 +24,7 @@ public: bool created() const override; const std::vector& getPrimitivesPriority() override; - bool isExecutable() const override { - return !isOptimized; - } + bool isExecutable() const override; void createPrimitive() override; @@ -34,7 +32,7 @@ public: void prepareParams() override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; void setDescs(const MemoryDesc& input, const MemoryDesc& output) { this->input = input.clone(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.cpp index 3ebc977bc41..65ce1beae8c 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.cpp @@ -51,6 +51,10 @@ void MKLDNNReorgYoloNode::initSupportedPrimitiveDescriptors() { impl_desc_type::ref_any); } +void MKLDNNReorgYoloNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNReorgYoloNode::execute(mkldnn::stream strm) { const auto *src_data = reinterpret_cast(getParentEdgeAt(0)->getMemoryPtr()->GetPtr()); auto *dst_data = reinterpret_cast(getChildEdgesAtPort(0)[0]->getMemoryPtr()->GetPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.h index c3be7362484..e83dbde7288 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reorg_yolo_node.h @@ -15,13 +15,10 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override {}; void execute(mkldnn::stream strm) override; bool created() const override; bool needPrepareParams() const override { return false; } - void executeDynamicImpl(mkldnn::stream strm) override { - execute(strm); - } + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.cpp index 10a9a07b480..35dd1e74946 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.cpp @@ -135,21 +135,13 @@ void MKLDNNReshapeNode::initSupportedPrimitiveDescriptors() { supportedPrimitiveDescriptors.emplace_back(config, impl_desc_type::unknown); } -void MKLDNNReshapeNode::createPrimitive() { - auto& dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); - auto& srcMemPtr = getParentEdgeAt(0)->getMemoryPtr(); - if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) - IE_THROW() << "Destination memory didn't allocate."; - if (!srcMemPtr || !srcMemPtr->GetPrimitivePtr()) - IE_THROW() << "Input memory didn't allocate."; - if (getSelectedPrimitiveDescriptor() == nullptr) - IE_THROW() << "Preferable primitive descriptor is not set."; -} - void MKLDNNReshapeNode::executeDynamicImpl(mkldnn::stream strm) { auto& srcMemPtr = getParentEdgeAt(0)->getMemoryPtr(); auto& dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); const auto count = srcMemPtr->GetShape().getElementsCount(); + if (count == 0) { + return; + } if (count != dstMemPtr->GetShape().getElementsCount()) IE_THROW() << errorPrefix << " has different elements number in input and output buffers"; cpu_memcpy(dstMemPtr->GetPtr(), srcMemPtr->GetPtr(), count * MKLDNNExtensionUtils::sizeOfDataType(srcMemPtr->GetDataType())); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.h index 86770c13cea..aed9c18cc6b 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_reshape_node.h @@ -19,7 +19,6 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; bool created() const override; bool isExecutable() const override { return isDynamicNode(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.cpp index bbd4d12ac5e..836c2f7656e 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.cpp @@ -108,9 +108,12 @@ void MKLDNNROIAlignNode::initSupportedPrimitiveDescriptors() { Precision inputPrec0 = getOriginalInputPrecisionAtPort(0); Precision outputPrec = getOriginalOutputPrecisionAtPort(0); - if (!mayiuse(avx512_core)) { - if (outputPrec == Precision::BF16 || inputPrec0 == Precision::BF16) + if (inputPrec0 != Precision::FP32 || outputPrec != Precision::FP32) { + if ((outputPrec == Precision::BF16 || inputPrec0 == Precision::BF16) && mayiuse(avx512_core)) { + outputPrec = inputPrec0 = Precision::BF16; + } else { outputPrec = inputPrec0 = Precision::FP32; + } } NodeConfig config; @@ -130,7 +133,7 @@ void MKLDNNROIAlignNode::initSupportedPrimitiveDescriptors() { {LayoutType::ncsp, Precision::FP32}, {LayoutType::ncsp, Precision::I32}}, {{fmts.second, outputPrec}}, - impl_desc_type::unknown); + impl_desc_type::ref); } } @@ -369,13 +372,7 @@ bool MKLDNNROIAlignNode::needPrepareParams() const { } void MKLDNNROIAlignNode::executeDynamicImpl(mkldnn::stream strm) { - return execute(strm); -} - -void MKLDNNROIAlignNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } + execute(strm); } REG_MKLDNN_PRIM_FOR(MKLDNNROIAlignNode, ROIAlign) diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.h index 31d470d4bca..e8bd963bc80 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_align_node.h @@ -19,7 +19,6 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_pooling_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_pooling_node.cpp index 6f314411c9c..ee126838ca6 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_pooling_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_roi_pooling_node.cpp @@ -419,7 +419,7 @@ void MKLDNNROIPoolingNode::createPrimitive() { refParams.dst_data_size = refParams.dst_prc.size(); if (inputShapesDefined()) { - if (needPrepareParams()) + if (needPrepareParams() && isExecutable()) prepareParams(); updateLastInputDims(); } @@ -437,7 +437,7 @@ void MKLDNNROIPoolingNode::execute(mkldnn::stream strm) { } void MKLDNNROIPoolingNode::executeDynamicImpl(mkldnn::stream strm) { - return execute(strm); + execute(strm); } void MKLDNNROIPoolingNode::prepareParams() { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.cpp index 412d3853f1a..6ceed6869ca 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.cpp @@ -35,6 +35,10 @@ bool MKLDNNScatterUpdateNode::isSupportedOperation(const std::shared_ptr& op, const mkldnn::engine& eng, MKLDNNWeightsSharing::Ptr &cache) : MKLDNNNode(op, eng, cache), dataSize(0lu), indicesSize(0lu), axisSize(0lu), dataPrec(Precision::UNSPECIFIED), indicesPrec(Precision::UNSPECIFIED), axisPrec(Precision::UNSPECIFIED) { @@ -211,34 +215,12 @@ void MKLDNNScatterUpdateNode::initSupportedPrimitiveDescriptors() { impl_desc_type::unknown); } -void MKLDNNScatterUpdateNode::createPrimitive() { - auto &dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); - auto &srcMemPtr = getParentEdgeAt(DATA_ID)->getMemoryPtr(); - auto &indicesMemPtr = getParentEdgeAt(INDICES_ID)->getMemoryPtr(); - auto &updateMemPtr = getParentEdgeAt(UPDATE_ID)->getMemoryPtr(); - - if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) - IE_THROW() << errorPrefix << " did not allocate destination memory"; - if (!srcMemPtr || !srcMemPtr->GetPrimitivePtr()) - IE_THROW() << errorPrefix << " did not allocate input memory"; - if (!indicesMemPtr || !indicesMemPtr->GetPrimitivePtr()) - IE_THROW() << errorPrefix << " did not allocate indices memory"; - if (!updateMemPtr || !updateMemPtr->GetPrimitivePtr()) - IE_THROW() << errorPrefix << " did not allocate update memory"; - if (getSelectedPrimitiveDescriptor() == nullptr) - IE_THROW() << errorPrefix << " did not set preferable primitive descriptor"; - - if (inputShapesDefined()) { - updateLastInputDims(); - } -} - bool MKLDNNScatterUpdateNode::needPrepareParams() const { return false; } void MKLDNNScatterUpdateNode::executeDynamicImpl(mkldnn::stream strm) { - return execute(strm); + execute(strm); } int64_t MKLDNNScatterUpdateNode::getIndicesValue(uint8_t *indices, size_t offset) { @@ -268,8 +250,8 @@ static std::vector getBlockND(const VectorDims& shape) { } void MKLDNNScatterUpdateNode::execute(mkldnn::stream strm) { - auto &dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); auto &srcMemPtr = getParentEdgeAt(DATA_ID)->getMemoryPtr(); + auto &dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); auto &indicesMemPtr = getParentEdgeAt(INDICES_ID)->getMemoryPtr(); auto &updateMemPtr = getParentEdgeAt(UPDATE_ID)->getMemoryPtr(); @@ -354,6 +336,10 @@ void MKLDNNScatterUpdateNode::execute(mkldnn::stream strm) { }); } + if (isInputTensorAtPortEmpty(INDICES_ID)) { + return; + } + switch (scatterUpdateMode) { case ScatterUpdateMode::ScatterUpdate: { scatterUpdate(indicesPtr, updatePtr, axis, dstPtr); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.h index 30b0ca5735d..59ba5054b74 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_scatter_update_node.h @@ -24,7 +24,6 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; bool created() const override; void execute(mkldnn::stream strm) override; bool canBeInPlace() const override { @@ -34,6 +33,7 @@ public: bool needPrepareParams() const override; void executeDynamicImpl(mkldnn::stream strm) override; + bool isExecutable() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.cpp index d907d76b369..3752dae38ca 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.cpp @@ -152,13 +152,6 @@ void MKLDNNSelectNode::prepareParams() { } } -void MKLDNNSelectNode::createPrimitive() { - if (inputShapesDefined()) { - prepareParams(); - updateLastInputDims(); - } -} - void MKLDNNSelectNode::calcOutOffset(VectorDims& offset, const VectorDims& dims) { int k = 1; for (int i = dims.size() - 1; i >= 0; i--) { @@ -200,6 +193,10 @@ void MKLDNNSelectNode::execute_impl() { } } +void MKLDNNSelectNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNSelectNode::execute(mkldnn::stream strm) { const size_t condPrecSize = getParentEdgeAt(CONDITION)->getMemory().getDesc().getPrecision().size(); const size_t inputsPrecSize = getParentEdgeAt(THEN)->getMemory().getDesc().getPrecision().size(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.h index 6602195f122..4312a95bf04 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_select_node.h @@ -18,11 +18,10 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); } + void executeDynamicImpl(mkldnn::stream strm) override; void prepareParams() override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.cpp index 28097fcaf58..20df75a421d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.cpp @@ -57,6 +57,10 @@ void MKLDNNShapeOfNode::initSupportedPrimitiveDescriptors() { } } +bool MKLDNNShapeOfNode::isExecutable() const { + return true; +} + void MKLDNNShapeOfNode::execute(mkldnn::stream strm) { auto inPtr = getParentEdgeAt(0)->getMemoryPtr(); auto outPtr = getChildEdgeAt(0)->getMemoryPtr(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.h index 2a7eb9560e6..0152e3f1bb9 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shapeof.h @@ -18,10 +18,6 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override { - if (inputShapesDefined()) - updateLastInputDims(); - }; void execute(mkldnn::stream strm) override; bool created() const override; bool needPrepareParams() const override {return false;}; @@ -30,6 +26,8 @@ public: return {VectorDims{getParentEdgesAtPort(0)[0]->getMemory().getStaticDims().size()}}; } + bool isExecutable() const override; + static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; private: diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.cpp index b6b68d59221..4909eb8ccc6 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.cpp @@ -114,7 +114,7 @@ void MKLDNNShuffleChannelsNode::createPrimitive() { memoryDesc.hasLayoutType(LayoutType::nCsp8c) ? LayoutType::nCsp8c : memoryDesc.hasLayoutType(LayoutType::nspc) ? LayoutType::nspc : LayoutType::ncsp; - if (inputShapesDefined()) { + if (inputShapesDefined() && isExecutable()) { if (needPrepareParams()) prepareParams(); updateLastInputDims(); @@ -245,6 +245,10 @@ void MKLDNNShuffleChannelsNode::ShuffleChannelsExecutor::exec(const uint8_t* src permuteKernel->execute(srcData, dstData); } +void MKLDNNShuffleChannelsNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNShuffleChannelsNode::execute(mkldnn::stream strm) { if (!execPtr) THROW_SHCH_ERROR << "doesn't have a compiled executor."; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.h index dbac77aaa05..91362b9a941 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_shuffle_channels_node.h @@ -28,7 +28,7 @@ public: void prepareParams() override; protected: - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; private: struct ShuffleChannelsAttributes { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.cpp index 8463344a52d..3732640e09e 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.cpp @@ -66,14 +66,6 @@ void MKLDNNSoftMaxNode::getSupportedDescriptors() { } } -void MKLDNNSoftMaxNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - bool MKLDNNSoftMaxNode::created() const { return getType() == Softmax; } @@ -148,8 +140,8 @@ void MKLDNNSoftMaxNode::prepareParams() { primArgs = {{DNNL_ARG_SRC, src}, {DNNL_ARG_DST, dst}}; } -void MKLDNNSoftMaxNode::executeDynamicImpl(dnnl::stream strm) { - MKLDNNNode::execute(strm); +void MKLDNNSoftMaxNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); } std::vector MKLDNNSoftMaxNode::shapeInfer() const { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.h index 0b95aab8123..72372ca3f5e 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_softmax_node.h @@ -20,7 +20,6 @@ public: void createDescriptor(const std::vector& inputDesc, const std::vector& outputDesc) override; void getSupportedDescriptors() override; - void createPrimitive() override; bool created() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.cpp index 85fc3e114d7..83ab528e1b2 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.cpp @@ -229,6 +229,10 @@ void MKLDNNSpaceToBatchNode::SpaceToBatchKernel() { }); } +void MKLDNNSpaceToBatchNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNSpaceToBatchNode::execute(mkldnn::stream strm) { switch (getParentEdgeAt(0)->getMemory().getDesc().getPrecision().size()) { case 1: SpaceToBatchKernel::value_type>(); break; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.h index 8bbf4f1fb73..33c893b0c94 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_batch_node.h @@ -18,12 +18,11 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override {}; void execute(mkldnn::stream strm) override; bool created() const override; bool needPrepareParams() const override { return false; }; - void executeDynamicImpl(mkldnn::stream strm) override { execute(strm); }; + void executeDynamicImpl(mkldnn::stream strm) override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_depth_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_depth_node.cpp index c0ac5db9468..0d64170c406 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_depth_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_space_to_depth_node.cpp @@ -154,7 +154,7 @@ void MKLDNNSpaceToDepthNode::createPrimitive() { ? LayoutType::nCsp8c : memoryDesc.hasLayoutType(LayoutType::nspc) ? LayoutType::nspc : LayoutType::ncsp; - if (inputShapesDefined()) { + if (inputShapesDefined() && isExecutable()) { if (needPrepareParams()) prepareParams(); updateLastInputDims(); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.cpp index 1412d0d5afe..348c1238fe9 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.cpp @@ -194,10 +194,12 @@ void MKLDNNSplitNode::initSupportedPrimitiveDescriptors() { for (size_t i = 0; i < outputShapes.size(); i++) { auto outBlockingDesc = refConfig.outConfs[i].desc->as(); const auto& outBlkDims = outBlockingDesc->getBlockDims(); - const auto& dims = outBlockingDesc->getShape().getStaticDims(); + const auto& shape = outBlockingDesc->getShape(); + const auto& dims = shape.getStaticDims(); config.outConfs[i].inPlace = 0; - config.outConfs[i].desc = std::make_shared(outPrecision, Shape(dims), outBlkDims, order, offset, offsets, strides); + config.outConfs[i].desc = std::make_shared(outPrecision, Shape(dims), outBlkDims, order, offset, offsets, + shape.hasZeroDims() ? SizeVector(numOfDim, 0) : strides); } supportedPrimitiveDescriptors.emplace_back(config, impl_desc_type::unknown); } @@ -245,16 +247,20 @@ void MKLDNNSplitNode::prepareParams() { dstMemPtrs.clear(); std::vector outDescs; - for (size_t i = 0; i < outputShapes.size(); ++i) { - const auto &outMemPtr = this->getChildEdgesAtPort(i)[0]->getMemoryPtr(); + for (size_t port = 0; port < outputShapes.size(); ++port) { + const auto &outMemPtr = this->getChildEdgesAtPort(port)[0]->getMemoryPtr(); if (!outMemPtr || !outMemPtr->GetPrimitivePtr()) { THROW_ERROR << "has not allocated destination memory"; } + if (outMemPtr->GetShape().hasZeroDims()) { + continue; + } + if (uint8_t* dstData = reinterpret_cast(outMemPtr->GetPtr())) { - dstMemPtrs.push_back(dstData); + dstMemPtrs.emplace_back(port, dstData); } else { - THROW_ERROR << "can't get child edge indx " << i << "data."; + THROW_ERROR << "can't get child edge indx " << port << "data."; } if (!canUseOptimizedNspc2Ncsp) { @@ -268,15 +274,8 @@ void MKLDNNSplitNode::prepareParams() { } } -void MKLDNNSplitNode::createPrimitive() { - if (getSelectedPrimitiveDescriptor() == nullptr) - THROW_ERROR << "Preferable primitive descriptor is not set."; - - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } +bool MKLDNNSplitNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0) && !isOptimized(); } void MKLDNNSplitNode::execute(mkldnn::stream strm) { @@ -346,13 +345,16 @@ void MKLDNNSplitNode::initOptimalPrimitiveDescriptor() { for (size_t i = 0; i < outputShapes.size(); i++) { auto oldDesc = config.outConfs[i].desc; auto outBlockingDesc = oldDesc->as(); + const auto& shape = outBlockingDesc->getShape(); + const auto& blkDims = outBlockingDesc->getBlockDims(); config.outConfs[i].desc = std::make_shared(outBlockingDesc->getPrecision(), - outBlockingDesc->getShape(), - outBlockingDesc->getBlockDims(), + shape, + blkDims, outBlockingDesc->getOrder(), firstInBlockingDesc->getOffsetPadding() + offset, firstInBlockingDesc->getOffsetPaddingToData(), - firstInBlockingDesc->getStrides()); + (shape.hasZeroDims() ? VectorDims(blkDims.size(), 0) : + firstInBlockingDesc->getStrides())); size_t axisSize = 1; for (size_t j = axis; j < outBlockingDesc->getBlockDims().size(); j++) { @@ -497,11 +499,11 @@ void MKLDNNSplitNode::optimizedNspc2Ncsp(size_t MB) { const size_t strideIW = IC*dataSize; const size_t strideOC = DHW * dataSize; - for (size_t i = 0, sIdx = 0; i < outputShapes.size(); i++) { - auto dstData = dstMemPtrs[i]; + for (size_t i = 0, sIdx = 0; i < dstMemPtrs.size(); i++) { + auto dstData = dstMemPtrs[i].second; size_t innerSize = 1; - auto dims = getChildEdgesAtPort(i)[0]->getMemory().getStaticDims(); + auto dims = getChildEdgesAtPort(dstMemPtrs[i].first)[0]->getMemory().getStaticDims(); for (size_t j = axis; j < dims.size(); j++) { innerSize *= dims[j]; @@ -568,14 +570,14 @@ MKLDNNSplitNode::SplitOptimizedExecutor::SplitOptimizedExecutor(BlockedMemoryDes } } -void MKLDNNSplitNode::SplitOptimizedExecutor::exec(const uint8_t* srcData, const std::vector &dstMemPtrs, +void MKLDNNSplitNode::SplitOptimizedExecutor::exec(const uint8_t* srcData, const std::vector> &dstMemPtrs, const Dim origBatch, const Dim perInferBatch) { size_t execCountStrides = countStrides; if (origBatch != perInferBatch) execCountStrides = execCountStrides / origBatch * perInferBatch; parallel_for2d(dstMemPtrs.size(), execCountStrides, [&](size_t i, size_t j) { - uint8_t* dstData = dstMemPtrs[i]; + uint8_t* dstData = dstMemPtrs[i].second; cpu_memcpy(&dstData[j * dataSize[i]], &srcData[srcDataOffsets[i] + j * srcDataStride], diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.h index aef06929cd2..00c0f719bf2 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_split_node.h @@ -18,7 +18,6 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; void selectOptimalPrimitiveDescriptor() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; @@ -26,9 +25,7 @@ public: void initOptimalPrimitiveDescriptor() override; void setDynamicBatchLim(int lim) override; - bool isExecutable() const override { - return !isOptimized(); - } + bool isExecutable() const override; bool needPrepareParams() const override; void prepareParams() override; @@ -36,7 +33,7 @@ public: private: struct SplitExecutor { - virtual void exec(const uint8_t* srcData, const std::vector &dstMemPtrs, + virtual void exec(const uint8_t* srcData, const std::vector> &dstMemPtrs, const Dim origBatch, const Dim perInferBatch) = 0; virtual ~SplitExecutor() = default; }; @@ -45,7 +42,7 @@ private: struct SplitOptimizedExecutor : public SplitExecutor { public: SplitOptimizedExecutor(BlockedMemoryDescCPtr inDesc, const std::vector &outDescs, const size_t axis); - void exec(const uint8_t* srcData, const std::vector &dstMemPtrs, + void exec(const uint8_t* srcData, const std::vector> &dstMemPtrs, const Dim origBatch, const Dim perInferBatch) override; private: @@ -60,7 +57,7 @@ private: bool canUseOptimizedNspc2Ncsp = false; size_t axis = 1; - std::vector dstMemPtrs; + std::vector> dstMemPtrs; size_t INPUTS_NUM = 2; }; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.cpp index ebfbab56329..2fd04d85146 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.cpp @@ -300,7 +300,14 @@ void MKLDNNStridedSliceNode::initSupportedPrimitiveDescriptors() { } } +bool MKLDNNStridedSliceNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0); +} + void MKLDNNStridedSliceNode::createPrimitive() { + if (!isExecutable()) { + return; + } auto& dstMemPtr = getChildEdgeAt(0)->getMemoryPtr(); auto& srcMemPtr = getParentEdgeAt(DATA_ID)->getMemoryPtr(); if (!dstMemPtr || !dstMemPtr->GetPrimitivePtr()) @@ -670,9 +677,8 @@ void MKLDNNStridedSliceNode::StridedSliceExecutor::exec(const uint8_t* srcData, void MKLDNNStridedSliceNode::execute(mkldnn::stream strm) { if (!execPtr) THROW_ERROR << "doesn't have compiled executor!"; - - const uint8_t* srcData = reinterpret_cast(getParentEdgeAt(0)->getMemoryPtr()->GetPtr()); - uint8_t* dstData = reinterpret_cast(getChildEdgeAt(0)->getMemoryPtr()->GetPtr()); + const uint8_t* srcData = reinterpret_cast(getParentEdgeAt(0)->getMemory().GetPtr()); + uint8_t* dstData = reinterpret_cast(getChildEdgeAt(0)->getMemory().GetPtr()); execPtr->exec(srcData, dstData); } diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.h index 9feadce871d..18e9c757431 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_strided_slice_node.h @@ -24,6 +24,8 @@ public: return false; } + bool isExecutable() const override; + protected: void prepareParams() override; void executeDynamicImpl(mkldnn::stream strm) override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.cpp index 74a1d2911c2..4a035681c25 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.cpp @@ -80,14 +80,6 @@ void MKLDNNTileNode::initSupportedPrimitiveDescriptors() { supportedPrimitiveDescriptors = getSupportedConfigs(this); } -void MKLDNNTileNode::createPrimitive() { - if (inputShapesDefined()) { - if (needPrepareParams()) - prepareParams(); - updateLastInputDims(); - } -} - bool MKLDNNTileNode::needPrepareParams() const { return needPrepareParamsVar; } @@ -150,6 +142,10 @@ std::vector MKLDNNTileNode::shapeInfer() const { return newOutputShapes; } +void MKLDNNTileNode::executeDynamicImpl(mkldnn::stream strm) { + execute(strm); +} + void MKLDNNTileNode::execute(mkldnn::stream strm) { if (optimizedCase) { optimizedExecute(getParentEdgeAt(TILE_INPUT)->getMemoryPtr(), getChildEdgeAt(0)->getMemoryPtr()); diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.h index b973a3a27c9..3af3a0b9c0f 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_tile_node.h @@ -16,11 +16,8 @@ public: void getSupportedDescriptors() override; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; - void executeDynamicImpl(mkldnn::stream strm) override { - execute(strm); - } + void executeDynamicImpl(mkldnn::stream strm) override; bool created() const override; static bool isSupportedOperation(const std::shared_ptr& op, std::string& errorMessage) noexcept; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.cpp index c1d200f79c3..14746d819a4 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.cpp @@ -158,13 +158,7 @@ bool MKLDNNTopKNode::needPrepareParams() const { } void MKLDNNTopKNode::executeDynamicImpl(mkldnn::stream strm) { - return execute(strm); -} - -void MKLDNNTopKNode::createPrimitive() { - if (inputShapesDefined()) { - updateLastInputDims(); - } + execute(strm); } bool MKLDNNTopKNode::needShapeInfer() const { diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.h index bd2a72824cc..7d288c4fb8b 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_topk_node.h @@ -17,7 +17,6 @@ public: void getSupportedDescriptors() override {}; void initSupportedPrimitiveDescriptors() override; - void createPrimitive() override; void execute(mkldnn::stream strm) override; bool created() const override; diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.cpp index 93a2ab8f299..d11261fd55d 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.cpp @@ -106,10 +106,14 @@ void MKLDNNTransposeNode::initSupportedPrimitiveDescriptors() { } } +bool MKLDNNTransposeNode::isExecutable() const { + return !isInputTensorAtPortEmpty(0); +} + bool MKLDNNTransposeNode::needPrepareParams() const { if (isOptimized) return false; - return MKLDNNNode::needPrepareParams(); + return inputShapesModified(); } void MKLDNNTransposeNode::prepareParams() { @@ -151,7 +155,7 @@ void MKLDNNTransposeNode::createPrimitive() { auto dstDesc = getChildEdgeAt(0)->getMemory().GetDescWithType(); params.dst_block_order = dstDesc->getOrder(); - if (inputShapesDefined()) { + if (inputShapesDefined() && isExecutable()) { prepareParams(); updateLastInputDims(); } diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.h b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.h index 0b45d826159..a5af65e8131 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.h +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_transpose_node.h @@ -31,6 +31,7 @@ public: return order; } + bool isExecutable() const override; bool needPrepareParams() const override; void prepareParams() override; diff --git a/inference-engine/src/mkldnn_plugin/utils/cpu_utils.hpp b/inference-engine/src/mkldnn_plugin/utils/cpu_utils.hpp index e9c213f23fb..ed4e94e1516 100644 --- a/inference-engine/src/mkldnn_plugin/utils/cpu_utils.hpp +++ b/inference-engine/src/mkldnn_plugin/utils/cpu_utils.hpp @@ -4,6 +4,13 @@ #pragma once +#include +#include +#include + +#include "ie_common.h" +#include "ie_layouts.h" + namespace MKLDNNPlugin { /** @@ -36,7 +43,9 @@ inline std::vector getNormalizedDimsBySize(const InferenceEngine::SizeVe * flag which specify how we compare C dims if value is undefined (weak or strong) * @return true if broadcastable, false otherwise. */ -inline bool isPerTensorOrPerChannelBroadcastable(const InferenceEngine::SizeVector &firstInputDims, const InferenceEngine::SizeVector& secondInputDims, +inline bool isPerTensorOrPerChannelBroadcastable(const InferenceEngine::SizeVector &firstInputDims, + const InferenceEngine::SizeVector& secondInputDims, + size_t channelAxis, bool weakComparison = false) { bool (*dimsEqual)(size_t, size_t) = weakComparison ? static_cast(dimsEqualWeak) : static_cast(dimsEqualStrong); @@ -47,7 +56,7 @@ inline bool isPerTensorOrPerChannelBroadcastable(const InferenceEngine::SizeVect std::vector normalizedSecondInputDims = getNormalizedDimsBySize(secondInputDims, firstInputDims.size()); for (size_t i = 0; i < normalizedSecondInputDims.size(); i++) { - if ((i == 1 && !dimsEqual(normalizedSecondInputDims[i], firstInputDims[1])) || (i != 1 && normalizedSecondInputDims[i] != 1)) + if ((i == channelAxis && !dimsEqual(normalizedSecondInputDims[i], firstInputDims[i])) || (i != channelAxis && normalizedSecondInputDims[i] != 1)) return false; } return true; diff --git a/inference-engine/src/mkldnn_plugin/utils/shape_inference/shape_inference.cpp b/inference-engine/src/mkldnn_plugin/utils/shape_inference/shape_inference.cpp index 8a836234b1a..1026524e75b 100644 --- a/inference-engine/src/mkldnn_plugin/utils/shape_inference/shape_inference.cpp +++ b/inference-engine/src/mkldnn_plugin/utils/shape_inference/shape_inference.cpp @@ -1,7 +1,6 @@ // Copyright (C) 2018-2021 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // - #include "shape_inference.hpp" #include @@ -17,12 +16,16 @@ #include "convolution_shape_inference.hpp" #include "experimental_detectron_detection_output_shape_inference.hpp" #include "experimental_detectron_prior_grid_generator_shape_inference.hpp" +#include "experimental_detectron_topkrois_shape_inference.hpp" #include "fake_quantize.hpp" +#include "gather_elements_shape_inference.hpp" +#include "gather_shape_inference.hpp" +#include "gather_tree_shape_inference.hpp" +#include "interpolate_shape_inference.hpp" #include "lstm_cell_shape_inference.hpp" +#include "one_hot_shape_inference.hpp" #include "read_value_shape_inference.hpp" #include "reduce_shape_inference.hpp" -#include "experimental_detectron_topkrois_shape_inference.hpp" -#include "interpolate_shape_inference.hpp" #include "scatter_elements_update_shape_inference.hpp" #include "scatter_nd_base_shape_inference.hpp" #include "shape_inference.hpp" @@ -129,6 +132,14 @@ void shape_inference(ov::Node* op, shape_infer(node, input_shapes, output_shapes, constant_data); } else if (auto node = ov::as_type(op)) { shape_infer(node, input_shapes, output_shapes); + } else if (auto node = ov::as_type(op)) { + shape_infer(node, input_shapes, output_shapes); + } else if (auto node = ov::as_type(op)) { + shape_infer(node, input_shapes, output_shapes, constant_data); + } else if (auto node = ov::as_type(op)) { + shape_infer(node, input_shapes, output_shapes); + } else if (auto node = ov::as_type(op)) { + shape_infer(node, input_shapes, output_shapes, constant_data); } else { ngraph::OutputVector new_inputs; for (size_t i = 0; i < op->get_input_size(); ++i) { diff --git a/inference-engine/src/vpu/graph_transformer/include/vpu/backend/backend.hpp b/inference-engine/src/vpu/graph_transformer/include/vpu/backend/backend.hpp index 5fa54bd478c..6b4d29ab04b 100644 --- a/inference-engine/src/vpu/graph_transformer/include/vpu/backend/backend.hpp +++ b/inference-engine/src/vpu/graph_transformer/include/vpu/backend/backend.hpp @@ -54,6 +54,11 @@ private: const mv_blob_header& blobHdr, std::vector& blob); + void serializeParamsAndResults( + const Model& model, + const mv_blob_header& blobHdr, + std::vector& blob); + ElfN_Ehdr createElfHeader(); void getMetaData( diff --git a/inference-engine/src/vpu/graph_transformer/include/vpu/backend/blob_format.hpp b/inference-engine/src/vpu/graph_transformer/include/vpu/backend/blob_format.hpp index 2a7f72adb32..8607fdb238b 100644 --- a/inference-engine/src/vpu/graph_transformer/include/vpu/backend/blob_format.hpp +++ b/inference-engine/src/vpu/graph_transformer/include/vpu/backend/blob_format.hpp @@ -62,4 +62,16 @@ VPU_PACKED(mv_stage_header { uint32_t numShaves; };) +VPU_PACKED(network_info_header { + uint32_t parameters_size; + uint32_t results_size; +};) + +VPU_PACKED(network_params_header { + uint32_t name_lenght; + uint32_t shape_size; + uint32_t element_type_bytesize; + uint32_t output_tensor_names_size; +};) + } // namespace vpu diff --git a/inference-engine/src/vpu/graph_transformer/include/vpu/blob_reader.hpp b/inference-engine/src/vpu/graph_transformer/include/vpu/blob_reader.hpp index 37f2ec63dfc..9b7b3bb7833 100644 --- a/inference-engine/src/vpu/graph_transformer/include/vpu/blob_reader.hpp +++ b/inference-engine/src/vpu/graph_transformer/include/vpu/blob_reader.hpp @@ -26,6 +26,9 @@ public: const ie::InputsDataMap& getNetworkInputs() const { return _networkInputs; } const ie::OutputsDataMap& getNetworkOutputs() const { return _networkOutputs; } + const std::vector>& getNetworkParemeters() const { return _parameters; } + const std::vector>& getNetworkResults() const { return _results; } + uint32_t getStageCount() const { return _blobHeader.stages_count; } uint32_t getMagicNumber() const { return _blobHeader.magic_number; } @@ -36,6 +39,8 @@ public: uint32_t getNumberOfShaves() const { return _blobHeader.number_of_shaves; } uint32_t getNumberOfSlices() const { return _blobHeader.number_of_cmx_slices; } + uint32_t getFileSize() const { return _blobHeader.file_size; } + const DataInfo& getInputInfo() const { return _inputInfo; } const DataInfo& getOutputInfo() const { return _outputInfo; } @@ -49,6 +54,9 @@ private: ie::InputsDataMap _networkInputs; ie::OutputsDataMap _networkOutputs; + std::vector> _parameters = {}; + std::vector> _results = {}; + DataInfo _inputInfo; DataInfo _outputInfo; }; diff --git a/inference-engine/src/vpu/graph_transformer/include/vpu/graph_transformer.hpp b/inference-engine/src/vpu/graph_transformer/include/vpu/graph_transformer.hpp index 6566e5d5265..625faefbc65 100644 --- a/inference-engine/src/vpu/graph_transformer/include/vpu/graph_transformer.hpp +++ b/inference-engine/src/vpu/graph_transformer/include/vpu/graph_transformer.hpp @@ -89,6 +89,7 @@ std::set getSupportedLayers(const ie::CNNNetwork& network, const Pl const uint32_t BLOB_MAGIC_NUMBER = 9709; const uint32_t BLOB_VERSION_MAJOR = 6; +// Must be changed when possible const uint32_t BLOB_VERSION_MINOR = 0; } // namespace vpu diff --git a/inference-engine/src/vpu/graph_transformer/src/backend/serialize.cpp b/inference-engine/src/vpu/graph_transformer/src/backend/serialize.cpp index 6d45a968b9f..1bdf80c4276 100644 --- a/inference-engine/src/vpu/graph_transformer/src/backend/serialize.cpp +++ b/inference-engine/src/vpu/graph_transformer/src/backend/serialize.cpp @@ -15,6 +15,9 @@ #include #include +#include +#include + #include #include #include @@ -161,6 +164,118 @@ void BackEnd::serializeConstShapes(const Model& model, const mv_blob_header& blo } } +void BackEnd::serializeParamsAndResults(const Model& model, const mv_blob_header& blobHdr, + std::vector& blob) { + const auto networkParams = model->attrs().getOrDefault("networkParameters"); + const auto networkResults = model->attrs().getOrDefault("networkResults"); + + auto getNetworkParameterHeader = [](const std::shared_ptr& node) { + network_params_header nph; + nph.element_type_bytesize = sizeof(node->get_element_type().operator ov::element::Type_t()); + nph.name_lenght = node->get_friendly_name().size(); + nph.shape_size = node->get_shape().size(); + nph.output_tensor_names_size = node->get_output_tensor(0).get_names().size(); + return nph; + }; + + uint32_t networkInfoOffset = blob.size(); + auto serializeParameters = [&blob, &networkInfoOffset, + &getNetworkParameterHeader]( + const std::shared_ptr& node) { + BlobSerializer headerSerializer; + BlobSerializer shapeSerializer; + BlobSerializer elementTypeSerializer; + BlobSerializer tensorNamesSerializer; + BlobSerializer inputNameForResultSerializer; + + const auto nph = getNetworkParameterHeader(node); + const bool isResult = ov::is_type(node); + int totalNetworkInfoOffset = + networkInfoOffset + sizeof(nph) + nph.name_lenght + + nph.element_type_bytesize + + sizeof(size_t) * (nph.output_tensor_names_size + nph.shape_size); + + for (const auto& name : node->get_output_tensor(0).get_names()) { + totalNetworkInfoOffset += sizeof(size_t) + name.size(); + } + if (isResult) { + totalNetworkInfoOffset += + sizeof(size_t) + + ngraph::op::util::create_ie_output_name(node->input_value(0)).size(); + } + + blob.resize(totalNetworkInfoOffset); + + headerSerializer.append(nph); + std::copy_n(headerSerializer.data(), sizeof(nph), + blob.data() + networkInfoOffset); + + networkInfoOffset += sizeof(nph); + const auto nodeName = node->get_friendly_name(); + VPU_THROW_UNLESS( + node->get_output_partial_shape(0).rank().is_static(), + "Serialization of shapes with dynamic rank is not supported"); + const auto nodeShape = node->get_output_partial_shape(0).get_shape(); + const auto nodeElType = + node->get_element_type().operator ov::element::Type_t(); + + std::copy_n(nodeName.data(), nodeName.size(), + blob.data() + networkInfoOffset); + networkInfoOffset += nph.name_lenght; + + for (const auto shapeIdx : nodeShape) { + shapeSerializer.append(shapeIdx); + } + std::copy_n(shapeSerializer.data(), + shapeSerializer.size(), blob.data() + networkInfoOffset); + networkInfoOffset += shapeSerializer.size(); + elementTypeSerializer.append(nodeElType); + std::copy_n(elementTypeSerializer.data(), nph.element_type_bytesize, + blob.data() + networkInfoOffset); + networkInfoOffset += nph.element_type_bytesize; + + for (const auto& name : node->get_output_tensor(0).get_names()) { + tensorNamesSerializer.append(name.size()); + for (const auto ch : name) { + tensorNamesSerializer.append(ch); + } + } + std::copy_n(tensorNamesSerializer.data(), tensorNamesSerializer.size(), + blob.data() + networkInfoOffset); + networkInfoOffset += tensorNamesSerializer.size(); + + if (isResult) { + const auto inputNameForResult = + ngraph::op::util::create_ie_output_name(node->input_value(0)); + inputNameForResultSerializer.append(inputNameForResult.size()); + for (const auto ch : inputNameForResult) { + inputNameForResultSerializer.append(ch); + } + std::copy_n(inputNameForResultSerializer.data(), + inputNameForResultSerializer.size(), + blob.data() + networkInfoOffset); + networkInfoOffset += inputNameForResultSerializer.size(); + } + }; + + BlobSerializer networkInfoSerializer; + network_info_header nih; + nih.parameters_size = networkParams.size(); + nih.results_size = networkResults.size(); + blob.resize(networkInfoOffset + sizeof(nih)); + networkInfoSerializer.append(nih); + std::copy_n(networkInfoSerializer.data(), sizeof(nih), blob.data() + networkInfoOffset); + networkInfoOffset += sizeof(nih); + + for (const auto& param : networkParams) { + serializeParameters(param); + } + + for (const auto& result : networkResults) { + serializeParameters(result); + } +} + void BackEnd::serialize( const Model& model, std::vector& blob, @@ -271,6 +386,12 @@ void BackEnd::serialize( serializeConstData(model, blobHdr, blob); serializeConstShapes(model, blobHdr, blob); + const auto networkParams = model->attrs().getOrDefault("networkParameters"); + const auto networkResults = model->attrs().getOrDefault("networkResults"); + // To avoid constant network case + if (!networkParams.empty() && !networkResults.empty()) { + serializeParamsAndResults(model, blobHdr, blob); + } blobHeader.first = blob.data(); blobHeader.second = sizeof(ElfN_Ehdr) + sizeof(mv_blob_header); diff --git a/inference-engine/src/vpu/graph_transformer/src/blob_reader.cpp b/inference-engine/src/vpu/graph_transformer/src/blob_reader.cpp index fe57214b3ba..3c056e2006b 100644 --- a/inference-engine/src/vpu/graph_transformer/src/blob_reader.cpp +++ b/inference-engine/src/vpu/graph_transformer/src/blob_reader.cpp @@ -10,7 +10,7 @@ #include #include - +#include #include #include #include @@ -116,6 +116,64 @@ void BlobReader::parse(const std::vector& blob) { _networkOutputs[processedOutput.getName()] = std::make_shared(processedOutput); } } + if (blob.size() != _blobHeader.file_size) { + auto networkInfoOffset = _blobHeader.file_size; + const auto nih = readFromBlob(blob, networkInfoOffset); + auto extractParameter = [&blob, &networkInfoOffset](bool isResult) { + const auto nph = readFromBlob(blob, networkInfoOffset); + std::string parameterFriendlyName(nph.name_lenght, '0'); + + for (auto idx = 0; idx < nph.name_lenght; ++idx) { + parameterFriendlyName[idx] = readFromBlob(blob, networkInfoOffset); + } + + ov::Shape parameterShape(nph.shape_size); + for (auto idx = 0; idx < nph.shape_size; ++idx) { + parameterShape[idx] = readFromBlob(blob, networkInfoOffset); + } + + ov::element::Type_t parameterType = readFromBlob(blob, networkInfoOffset); + std::shared_ptr parameter = + std::make_shared(parameterType, + parameterShape); + + std::unordered_set tensorNames; + for (auto idx = 0; idx < nph.output_tensor_names_size; ++idx) { + const auto nameLenght = readFromBlob(blob, networkInfoOffset); + std::string tensorName; + for (auto nameSymbolIdx = 0; nameSymbolIdx < nameLenght; ++nameSymbolIdx) { + tensorName += readFromBlob(blob, networkInfoOffset); + } + tensorNames.insert(tensorName); + } + if (isResult) { + auto fakeParameter = parameter; + parameter = std::make_shared(parameter); + + const auto inputNameLenght = readFromBlob(blob, networkInfoOffset); + + std::string inputName; + for (auto nameSymbolIdx = 0; nameSymbolIdx < inputNameLenght; ++nameSymbolIdx) { + inputName += readFromBlob(blob, networkInfoOffset); + } + fakeParameter->set_friendly_name(inputName); + + parameter = parameter->copy_with_new_inputs({fakeParameter}); + } + parameter->set_friendly_name(parameterFriendlyName); + parameter->output(0).get_tensor().set_names(tensorNames); + + return parameter; + }; + + for (auto paramIdx = 0; paramIdx < nih.parameters_size; ++paramIdx) { + _parameters.emplace_back(extractParameter(false)); + } + + for (auto paramIdx = 0; paramIdx < nih.results_size; ++paramIdx) { + _results.emplace_back(extractParameter(true)); + } + } } } // namespace vpu diff --git a/inference-engine/src/vpu/graph_transformer/src/frontend/frontend.cpp b/inference-engine/src/vpu/graph_transformer/src/frontend/frontend.cpp index 447ba461280..c1960da95e4 100644 --- a/inference-engine/src/vpu/graph_transformer/src/frontend/frontend.cpp +++ b/inference-engine/src/vpu/graph_transformer/src/frontend/frontend.cpp @@ -492,7 +492,14 @@ ModelPtr FrontEnd::runCommonPasses(ie::CNNNetwork network, model->attrs().set("index", g_counter.fetch_add(1)); model->attrs().set("resources", env.resources); - + // Transmitting Information about the parameters/results of the network for + // the possibility of importing it + if (network.getFunction() != nullptr) { + model->attrs().set( + "networkParameters", network.getFunction()->get_parameters()); + model->attrs().set( + "networkResults", network.getFunction()->get_results()); + } // // Update IE Network // diff --git a/inference-engine/src/vpu/myriad_plugin/myriad_executable_network.cpp b/inference-engine/src/vpu/myriad_plugin/myriad_executable_network.cpp index 90c12142c23..83e48a22595 100644 --- a/inference-engine/src/vpu/myriad_plugin/myriad_executable_network.cpp +++ b/inference-engine/src/vpu/myriad_plugin/myriad_executable_network.cpp @@ -164,11 +164,20 @@ void ExecutableNetwork::Import(std::istream& strm, std::vector &devic this->_networkInputs = blobReader.getNetworkInputs(); this->_networkOutputs = blobReader.getNetworkOutputs(); - std::size_t numStages = blobReader.getStageCount(); - auto blobHeader = blobReader.getHeader(); + if (blobSize == blobReader.getFileSize()) { + _log->warning( + "Older version of blob. Unable to get information about network " + "parameters/results. Please recompile blob"); + } + this->setInputs(blobReader.getNetworkParemeters()); + this->setOutputs(blobReader.getNetworkResults()); _inputInfo = blobReader.getInputInfo(); _outputInfo = blobReader.getOutputInfo(); + + std::size_t numStages = blobReader.getStageCount(); + auto blobHeader = blobReader.getHeader(); + openDevice(devicePool); _executor->allocateGraph(_device, _graphDesc, _graphBlob, blobHeader, numStages, networkName, _actualNumExecutors); _graphMetaData.stagesMeta.resize(numStages); diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/convolution_backprop_data.cpp b/inference-engine/tests/functional/plugin/cpu/single_layer_tests/convolution_backprop_data.cpp deleted file mode 100755 index d4a2f3d414f..00000000000 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/convolution_backprop_data.cpp +++ /dev/null @@ -1,389 +0,0 @@ -// Copyright (C) 2018-2021 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#include "test_utils/cpu_test_utils.hpp" -#include "test_utils/convolution_params.hpp" -#include "test_utils/fusing_test_utils.hpp" -#include "shared_test_classes/base/layer_test_utils.hpp" -#include "ngraph_functions/utils/ngraph_helpers.hpp" -#include "ngraph_functions/builders.hpp" -#include - - -using namespace InferenceEngine; -using namespace CPUTestUtils; - -namespace CPULayerTestsDefinitions { -using LayerTestsDefinitions::convBackpropDataSpecificParams; -using LayerTestsDefinitions::convBackpropDataLayerTestParamsSet; - -typedef std::tuple< - convBackpropDataLayerTestParamsSet, - CPUSpecificParams, - fusingSpecificParams, - std::map > deconvLayerCPUTestParamsSet; - -class DeconvolutionLayerCPUTest : public testing::WithParamInterface, - virtual public LayerTestsUtils::LayerTestsCommon, public CpuTestWithFusing { -public: - static std::string getTestCaseName(testing::TestParamInfo obj) { - convBackpropDataLayerTestParamsSet basicParamsSet; - CPUSpecificParams cpuParams; - fusingSpecificParams fusingParams; - std::map additionalConfig; - std::tie(basicParamsSet, cpuParams, fusingParams, additionalConfig) = obj.param; - - std::ostringstream result; - result << LayerTestsDefinitions::ConvolutionBackpropDataLayerTest::getTestCaseName(testing::TestParamInfo( - basicParamsSet, 0)); - - result << CPUTestsBase::getTestCaseName(cpuParams); - result << CpuTestWithFusing::getTestCaseName(fusingParams); - - if (!additionalConfig.empty()) { - result << "_PluginConf"; - for (auto& item : additionalConfig) { - result << "_" << item.first << "=" << item.second; - } - } - - return result.str(); - } -protected: - InferenceEngine::SizeVector kernel, stride; - void SetUp() override { - convBackpropDataLayerTestParamsSet basicParamsSet; - CPUSpecificParams cpuParams; - fusingSpecificParams fusingParams; - std::map additionalConfig; - std::tie(basicParamsSet, cpuParams, fusingParams, additionalConfig) = this->GetParam(); - - configuration.insert(additionalConfig.begin(), additionalConfig.end()); - - std::tie(inFmts, outFmts, priority, selectedType) = cpuParams; - std::tie(postOpMgrPtr, fusedOps) = fusingParams; - - convBackpropDataSpecificParams convParams; - std::vector inputShape; - std::vector outputShape; - auto netPrecision = InferenceEngine::Precision::UNSPECIFIED; - std::tie(convParams, netPrecision, inPrc, outPrc, inLayout, outLayout, inputShape, outputShape, targetDevice) = basicParamsSet; - - if (inPrc == Precision::UNSPECIFIED) { - selectedType += std::string("_") + Precision(Precision::FP32).name(); - } else { - selectedType += std::string("_") + inPrc.name(); - } - - ngraph::op::PadType padType; - InferenceEngine::SizeVector dilation; - std::vector padBegin, padEnd, outPadding; - size_t convOutChannels; - std::tie(kernel, stride, padBegin, padEnd, dilation, convOutChannels, padType, outPadding) = convParams; - auto ngPrc = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision); - - auto inputParams = ngraph::builder::makeParams(ngraph::element::f32, { inputShape }); - auto paramOuts = ngraph::helpers::convert2OutputVector(ngraph::helpers::castOps2Nodes(inputParams)); - - auto deconvolutionNode = ngraph::builder::makeConvolutionBackpropData(paramOuts.front(), ngPrc, kernel, stride, padBegin, - padEnd, dilation, padType, convOutChannels, false, outPadding); - - if (!outputShape.empty()) { - auto outShape = ngraph::opset3::Constant::create(ngraph::element::i64, {outputShape.size()}, outputShape); - deconvolutionNode = ngraph::builder::makeConvolutionBackpropData(paramOuts.front(), outShape, ngPrc, kernel, stride, padBegin, - padEnd, dilation, padType, convOutChannels); - } - - function = makeNgraphFunction(ngPrc, inputParams, deconvolutionNode, "convolutionBackpropData"); - } -}; - -TEST_P(DeconvolutionLayerCPUTest, CompareWithRefs) { - SKIP_IF_CURRENT_TEST_IS_DISABLED() - - if (!fusedOps.empty()) { - bool isSupportedParams = stride[stride.size() - 1] <= kernel[kernel.size() - 1]; - if (stride.size() > 1) - isSupportedParams &= stride[stride.size() - 2] <= kernel[kernel.size() - 2]; - if (stride.size() > 2) - isSupportedParams &= stride[stride.size() - 3] <= kernel[kernel.size() - 3]; - if (!isSupportedParams) { - GTEST_SKIP() << "Fusing with strides more than kernel size was disabled, because oneDNN deconvolution doesn't support it" << std::endl; - } - } - - Run(); - CheckPluginRelatedResults(executableNetwork, "Deconvolution"); -} - -namespace { - -/* COMMON PARAMS */ -const std::vector fusingParamsSet{ - emptyFusingSpec, - fusingScaleShift -}; - -const std::map cpuEmptyPluginConfig; -const std::map cpuBF16PluginConfig = { { PluginConfigParams::KEY_ENFORCE_BF16, PluginConfigParams::YES } }; -const std::vector emptyOutputShape = { {} }; -const std::vector> emptyOutputPadding = { {} }; - -/* ============= Deconvolution params (planar layout) ============= */ -const SizeVector numOutChannels_Planar = { 6 }; - -/* ============= Deconvolution params (blocked layout) ============= */ -const SizeVector numOutChannels_Blocked = { 64 }; - -/* ============= Deconvolution params (2D) ============= */ -const std::vector kernels2d = { {3, 3}, {1, 1} }; -const std::vector strides2d = { {1, 1}, {2, 2} }; -const std::vector> padBegins2d = { {0, 0} }; -const std::vector> padEnds2d = { {0, 0} }; -const std::vector dilations2d = { {1, 1} }; - -/* ============= Deconvolution params (3D) ============= */ -const std::vector kernels3d = { {3, 3, 3}, {1, 1, 1} }; -const std::vector strides3d = { {1, 1, 1}, {2, 2, 2} }; -const std::vector> padBegins3d = { {0, 0, 0} }; -const std::vector> padEnds3d = { {0, 0, 0} }; -const std::vector dilations3d = { {1, 1, 1} }; -/* ============= */ - -/* INSTANCES */ -/* ============= Deconvolution (Planar 2D) ============= */ -const auto convParams_ExplicitPadding_Planar_2D = ::testing::Combine( - ::testing::ValuesIn(kernels2d), - ::testing::ValuesIn(strides2d), - ::testing::ValuesIn(padBegins2d), - ::testing::ValuesIn(padEnds2d), - ::testing::ValuesIn(dilations2d), - ::testing::ValuesIn(numOutChannels_Planar), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Planar_FP32, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Planar_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Planar_BF16, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Planar_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::BF16), - ::testing::Values(Precision::BF16), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= GroupDeconvolution (Planar 3D) ============= */ -const auto convParams_ExplicitPadding_Planar_3D = ::testing::Combine( - ::testing::ValuesIn(kernels3d), - ::testing::ValuesIn(strides3d), - ::testing::ValuesIn(padBegins3d), - ::testing::ValuesIn(padEnds3d), - ::testing::ValuesIn(dilations3d), - ::testing::ValuesIn(numOutChannels_Planar), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Planar_FP32, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Planar_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Planar_BF16, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Planar_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::BF16), - ::testing::Values(Precision::BF16), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= GroupDeconvolution (Blocked 2D) ============= */ -const auto convParams_ExplicitPadding_Blocked_2D = ::testing::Combine( - ::testing::ValuesIn(kernels2d), - ::testing::ValuesIn(strides2d), - ::testing::ValuesIn(padBegins2d), - ::testing::ValuesIn(padEnds2d), - ::testing::ValuesIn(dilations2d), - ::testing::ValuesIn(numOutChannels_Blocked), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Blocked_FP32, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Blocked_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 67, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Blocked_BF16, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Blocked_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::BF16), - ::testing::Values(Precision::BF16), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 67, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= GroupDeconvolution (Blocked 3D) ============= */ -const auto convParams_ExplicitPadding_Blocked_3D = ::testing::Combine( - ::testing::ValuesIn(kernels3d), - ::testing::ValuesIn(strides3d), - ::testing::ValuesIn(padBegins3d), - ::testing::ValuesIn(padEnds3d), - ::testing::ValuesIn(dilations3d), - ::testing::ValuesIn(numOutChannels_Blocked), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Blocked_FP32, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Blocked_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 67, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Blocked_BF16, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_Blocked_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::BF16), - ::testing::Values(Precision::BF16), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 67, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= Kernel_1x1 (2D) ============= */ - -const auto convParams_ExplicitPadding_1x1_2D = ::testing::Combine( - ::testing::Values(SizeVector({1, 1})), - ::testing::Values(SizeVector({1, 1})), - ::testing::Values(std::vector({0, 0})), - ::testing::Values(std::vector({0, 0})), - ::testing::Values(SizeVector({1, 1})), - ::testing::ValuesIn(numOutChannels_Blocked), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_1x1_FP32, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_1x1_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Precision::UNSPECIFIED), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 67, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_1x1_BF16, DeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - convParams_ExplicitPadding_1x1_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(Precision::BF16), - ::testing::Values(Precision::BF16), - ::testing::Values(Layout::ANY), - ::testing::Values(Layout::ANY), - ::testing::Values(std::vector({ 2, 67, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - DeconvolutionLayerCPUTest::getTestCaseName); - -/* ========= */ - -} // namespace -} // namespace CPULayerTestsDefinitions diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/group_convolution_backprop_data.cpp b/inference-engine/tests/functional/plugin/cpu/single_layer_tests/group_convolution_backprop_data.cpp deleted file mode 100755 index fb13870bc17..00000000000 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/group_convolution_backprop_data.cpp +++ /dev/null @@ -1,419 +0,0 @@ -// Copyright (C) 2018-2021 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#include -#include "test_utils/cpu_test_utils.hpp" -#include "test_utils/convolution_params.hpp" -#include "test_utils/fusing_test_utils.hpp" - -using namespace InferenceEngine; -using namespace CPUTestUtils; - -namespace CPULayerTestsDefinitions { - -using groupConvBackpropDataLayerTestParamsSet = LayerTestsDefinitions::groupConvBackpropLayerTestParamsSet; -using groupConvBackpropDataSpecificParams = LayerTestsDefinitions::groupConvBackpropSpecificParams; - -typedef std::tuple< - groupConvBackpropDataLayerTestParamsSet, - CPUSpecificParams, - fusingSpecificParams, - std::map> groupDeconvLayerCPUTestParamsSet; - -class GroupDeconvolutionLayerCPUTest : public testing::WithParamInterface, - virtual public LayerTestsUtils::LayerTestsCommon, public CpuTestWithFusing { -public: - static std::string getTestCaseName(testing::TestParamInfo obj) { - groupConvBackpropDataLayerTestParamsSet basicParamsSet; - CPUSpecificParams cpuParams; - fusingSpecificParams fusingParams; - std::map additionalConfig; - std::tie(basicParamsSet, cpuParams, fusingParams, additionalConfig) = obj.param; - - std::ostringstream result; - result << LayerTestsDefinitions::GroupConvBackpropLayerTest::getTestCaseName(testing::TestParamInfo( - basicParamsSet, 0)); - - result << CPUTestsBase::getTestCaseName(cpuParams); - result << CpuTestWithFusing::getTestCaseName(fusingParams); - - if (!additionalConfig.empty()) { - result << "_PluginConf"; - for (auto& item : additionalConfig) { - result << "_" << item.first << "=" << item.second; - } - } - - return result.str(); - } - -protected: - InferenceEngine::SizeVector kernel, stride; - void SetUp() override { - groupConvBackpropDataLayerTestParamsSet basicParamsSet; - CPUSpecificParams cpuParams; - fusingSpecificParams fusingParams; - std::map additionalConfig; - std::tie(basicParamsSet, cpuParams, fusingParams, additionalConfig) = this->GetParam(); - - configuration.insert(additionalConfig.begin(), additionalConfig.end()); - - std::tie(inFmts, outFmts, priority, selectedType) = cpuParams; - std::tie(postOpMgrPtr, fusedOps) = fusingParams; - - groupConvBackpropDataSpecificParams groupConvParams; - std::vector inputShape, outputShape; - auto netPrecision = InferenceEngine::Precision::UNSPECIFIED; - std::tie(groupConvParams, netPrecision, inPrc, outPrc, inLayout, outLayout, inputShape, outputShape, targetDevice) = basicParamsSet; - - if (inPrc == Precision::UNSPECIFIED) { - selectedType += std::string("_") + Precision(Precision::FP32).name(); - } else { - selectedType += std::string("_") + inPrc.name(); - } - - ngraph::op::PadType padType; - InferenceEngine::SizeVector dilation; - std::vector padBegin, padEnd, outputPadding; - size_t convOutChannels, numGroups; - std::tie(kernel, stride, padBegin, padEnd, dilation, convOutChannels, numGroups, padType, outputPadding) = groupConvParams; - - auto ngPrc = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision); - auto params = ngraph::builder::makeParams(ngPrc, {inputShape}); - auto paramOuts = ngraph::helpers::convert2OutputVector( - ngraph::helpers::castOps2Nodes(params)); - std::shared_ptr groupConv; - if (!outputShape.empty()) { - auto outShape = ngraph::opset3::Constant::create(ngraph::element::i64, {outputShape.size()}, outputShape); - groupConv = std::dynamic_pointer_cast( - ngraph::builder::makeGroupConvolutionBackpropData(paramOuts[0], outShape, ngPrc, kernel, stride, padBegin, - padEnd, dilation, padType, convOutChannels, numGroups, false, outputPadding)); - } else { - groupConv = std::dynamic_pointer_cast( - ngraph::builder::makeGroupConvolutionBackpropData(paramOuts[0], ngPrc, kernel, stride, padBegin, - padEnd, dilation, padType, convOutChannels, numGroups, false, outputPadding)); - } - function = makeNgraphFunction(ngPrc, params, groupConv, "groupConvolutionBackpropData"); - } -}; - -TEST_P(GroupDeconvolutionLayerCPUTest, CompareWithRefs) { - SKIP_IF_CURRENT_TEST_IS_DISABLED() - - if (!fusedOps.empty()) { - bool isSupportedParams = stride[stride.size() - 1] <= kernel[kernel.size() - 1]; - if (stride.size() > 1) - isSupportedParams &= stride[stride.size() - 2] <= kernel[kernel.size() - 2]; - if (stride.size() > 2) - isSupportedParams &= stride[stride.size() - 3] <= kernel[kernel.size() - 3]; - if (!isSupportedParams) { - GTEST_SKIP() << "Fusing with strides more than kernel size was disabled, because oneDNN deconvolution doesn't support it" << std::endl; - } - } - - Run(); - CheckPluginRelatedResults(executableNetwork, "Deconvolution"); -} - -namespace { - -/* GROUP CONV TEST UTILS */ -std::vector filterParamsSetForDevice(std::vector paramsSet) { - std::vector resParamsSet; - const int cpuParamsIndex = 1; - const int selectedTypeIndex = 3; - - for (auto param : paramsSet) { - auto cpuParams = std::get(param); - auto selectedTypeStr = std::get(cpuParams); - - if (selectedTypeStr.find("jit") != std::string::npos && !with_cpu_x86_sse42()) - continue; - if (selectedTypeStr.find("avx512") != std::string::npos && !with_cpu_x86_avx512f()) - continue; - - resParamsSet.push_back(param); - } - - return resParamsSet; -} -/* ===================== */ - -/* COMMON PARAMS */ -std::vector fusingParamsSet { - emptyFusingSpec, - fusingScaleShift, -}; -const std::map cpuEmptyPluginConfig; -const std::map cpuBF16PluginConfig = { { PluginConfigParams::KEY_ENFORCE_BF16, PluginConfigParams::YES } }; - -const std::vector> emptyOutputShape = {{}}; -const std::vector> emptyOutputPadding = {{}}; - -/* ============= GroupConvolution params (planar layout) ============= */ -const SizeVector numOutChannels_Planar = {6}; -const SizeVector numGroups_Planar = {2, 3}; - -/* ============= GroupConvolution params (blocked layout) ============= */ -const SizeVector numOutChannels_Blocked = {64}; -const SizeVector numGroups_Blocked = {2, 4}; - -/* ============= GroupConvolution params (DW) ============= */ -const SizeVector numOutChannels_DW = {32}; -const SizeVector numGroups_DW = {32}; - -/* ============= GroupConvolution params (2D) ============= */ -const std::vector kernels2d = {{3, 3}, {1, 1}}; -const std::vector strides2d = {{1, 1}, {2, 2}}; -const std::vector> padBegins2d = {{0, 0}}; -const std::vector> padEnds2d = {{0, 0}}; -const std::vector dilations2d = {{1, 1}}; - -/* ============= GroupConvolution params (3D) ============= */ -const std::vector kernels3d = {{3, 3, 3}, {1, 1, 1}}; -const std::vector strides3d = {{1, 1, 1}, {2, 2, 2}}; -const std::vector> padBegins3d = {{0, 0, 0}}; -const std::vector> padEnds3d = {{0, 0, 0}}; -const std::vector dilations3d = {{1, 1, 1}}; -/* ============= */ - - -/* INSTANCES */ -/* ============= GroupConvolution (Planar 2D) ============= */ -const auto groupConvParams_ExplicitPadding_Planar_2D = ::testing::Combine( - ::testing::ValuesIn(kernels2d), - ::testing::ValuesIn(strides2d), - ::testing::ValuesIn(padBegins2d), - ::testing::ValuesIn(padEnds2d), - ::testing::ValuesIn(dilations2d), - ::testing::ValuesIn(numOutChannels_Planar), - ::testing::ValuesIn(numGroups_Planar), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Planar_FP32, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Planar_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Planar_BF16, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Planar_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= GroupConvolution (Planar 3D) ============= */ -const auto groupConvParams_ExplicitPadding_Planar_3D = ::testing::Combine( - ::testing::ValuesIn(kernels3d), - ::testing::ValuesIn(strides3d), - ::testing::ValuesIn(padBegins3d), - ::testing::ValuesIn(padEnds3d), - ::testing::ValuesIn(dilations3d), - ::testing::ValuesIn(numOutChannels_Planar), - ::testing::ValuesIn(numGroups_Planar), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Planar_FP32, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Planar_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Planar_BF16, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Planar_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 12, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= GroupConvolution (Blocked 2D) ============= */ -const auto groupConvParams_ExplicitPadding_Blocked_2D = ::testing::Combine( - ::testing::ValuesIn(kernels2d), - ::testing::ValuesIn(strides2d), - ::testing::ValuesIn(padBegins2d), - ::testing::ValuesIn(padEnds2d), - ::testing::ValuesIn(dilations2d), - ::testing::ValuesIn(numOutChannels_Blocked), - ::testing::ValuesIn(numGroups_Blocked), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Blocked_FP32, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Blocked_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 64, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Blocked_BF16, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Blocked_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 64, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= GroupConvolution (Blocked 3D) ============= */ -const auto groupConvParams_ExplicitPadding_Blocked_3D = ::testing::Combine( - ::testing::ValuesIn(kernels3d), - ::testing::ValuesIn(strides3d), - ::testing::ValuesIn(padBegins3d), - ::testing::ValuesIn(padEnds3d), - ::testing::ValuesIn(dilations3d), - ::testing::ValuesIn(numOutChannels_Blocked), - ::testing::ValuesIn(numGroups_Blocked), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Blocked_FP32, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Blocked_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 64, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Blocked_BF16, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_Blocked_3D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 64, 7, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -/* ============= GroupConvolution (DW 2D) ============= */ -const auto groupConvParams_ExplicitPadding_DW_2D = ::testing::Combine( - ::testing::ValuesIn(kernels2d), - ::testing::ValuesIn(strides2d), - ::testing::ValuesIn(padBegins2d), - ::testing::ValuesIn(padEnds2d), - ::testing::ValuesIn(dilations2d), - ::testing::ValuesIn(numOutChannels_DW), - ::testing::ValuesIn(numGroups_DW), - ::testing::Values(ngraph::op::PadType::EXPLICIT), - ::testing::ValuesIn(emptyOutputPadding) -); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_DW_FP32, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_DW_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Precision::UNSPECIFIED), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 32, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_dw_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuEmptyPluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); - -INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_DW_BF16, GroupDeconvolutionLayerCPUTest, - ::testing::Combine( - ::testing::Combine( - groupConvParams_ExplicitPadding_DW_2D, - ::testing::Values(Precision::FP32), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Precision::BF16), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(InferenceEngine::Layout::ANY), - ::testing::Values(std::vector({ 2, 32, 7, 7 })), - ::testing::ValuesIn(emptyOutputShape), - ::testing::Values(CommonTestUtils::DEVICE_CPU)), - ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_dw_2D})), - ::testing::ValuesIn(fusingParamsSet), - ::testing::Values(cpuBF16PluginConfig)), - GroupDeconvolutionLayerCPUTest::getTestCaseName); -} // namespace - -} // namespace CPULayerTestsDefinitions diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/reshape_fc.cpp b/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/reshape_fc.cpp deleted file mode 100644 index 40b5215bd74..00000000000 --- a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/reshape_fc.cpp +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (C) 2021 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#include "test_utils/fusing_test_utils.hpp" -#include "ngraph_functions/builders.hpp" - -using namespace ngraph; -using namespace InferenceEngine; -using namespace CPUTestUtils; - -namespace SubgraphTestsDefinitions { - -using ReshapeFCTestParams = std::tuple, // IS fully connected - bool, // transpose B - fusingSpecificParams>; - -class ReshapeFCTest : public testing::WithParamInterface, public CpuTestWithFusing, - virtual public LayerTestsUtils::LayerTestsCommon { -public: - static std::string getTestCaseName(testing::TestParamInfo obj) { - std::pair isFc; - bool transpB; - fusingSpecificParams fusingParams; - std::tie(isFc, transpB, fusingParams) = obj.param; - SizeVector isA = isFc.first; SizeVector isB = isFc.second; - - std::ostringstream result; - result << "IS_reshape=" << CommonTestUtils::vec2str(isA) << "_"; - result << "IS_fc_B=" << CommonTestUtils::vec2str(isB) << "_"; - result << "Transp_B=" << transpB; - result << CpuTestWithFusing::getTestCaseName(fusingParams); - - return result.str(); - } - -protected: - void SetUp() override { - targetDevice = CommonTestUtils::DEVICE_CPU; - std::pair isFc; - bool transpB; - fusingSpecificParams fusingParams; - std::tie(isFc, transpB, fusingParams) = this->GetParam(); - std::tie(postOpMgrPtr, fusedOps) = fusingParams; - SizeVector isReshape = isFc.first; SizeVector isB = isFc.second; - SizeVector isA(2); - isA[0] = isReshape[0]; - isA[1] = std::accumulate(isReshape.begin() + 1, isReshape.end(), size_t{1}, std::multiplies()); - if (transpB) { - std::swap(*(isB.end() - 1), *(isB.end() - 2)); - } - - auto inputParams = builder::makeParams(element::f32, {isReshape}); - auto paramOuts = helpers::convert2OutputVector(helpers::castOps2Nodes(inputParams)); - - auto constNode = builder::makeConstant(element::i64, {isA.size()}, isA); - auto reshape = std::make_shared(paramOuts[0], constNode, true); - - auto matrixB = builder::makeConstant(element::f32, isB, {}, true); - auto matMul = builder::makeMatMul(reshape, matrixB, false, transpB); - - const auto netType = element::f32; - selectedType = makeSelectedTypeStr("jit_gemm", netType); - - function = makeNgraphFunction(netType, inputParams, matMul, "ReshapeFC"); - } -}; - -TEST_P(ReshapeFCTest, CompareWithRefs) { - SKIP_IF_CURRENT_TEST_IS_DISABLED() - - Run(); - CheckNodeOfTypeCount(executableNetwork, "Reshape", 0); - CheckPluginRelatedResults(executableNetwork, "FullyConnected"); -} - -namespace { - -const std::vector transpose = { - true, false -}; - -const std::vector> isFC = { - {{71, 128, 1, 1}, {128, 20}}, - {{1, 24, 2, 7}, {336, 16}} -}; - -std::vector fusingParamsSet { - emptyFusingSpec, - fusingAddPerChannel -}; - -const auto reshapeFCParams = ::testing::Combine(::testing::ValuesIn(isFC), - ::testing::ValuesIn(transpose), - ::testing::ValuesIn(fusingParamsSet)); - -INSTANTIATE_TEST_SUITE_P(smoke_Check, ReshapeFCTest, reshapeFCParams, ReshapeFCTest::getTestCaseName); - -} // namespace - -} // namespace SubgraphTestsDefinitions diff --git a/inference-engine/thirdparty/clDNN/api/intel_gpu/primitives/slice.hpp b/inference-engine/thirdparty/clDNN/api/intel_gpu/primitives/slice.hpp new file mode 100644 index 00000000000..1594b4e2393 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/api/intel_gpu/primitives/slice.hpp @@ -0,0 +1,37 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#pragma once +#include "primitive.hpp" + +namespace cldnn { +/// @addtogroup cpp_api C++ API +/// @{ +/// @addtogroup cpp_topology Network Topology +/// @{ +/// @addtogroup cpp_primitives Primitives +/// @{ + +/// @brief +/// @details +struct slice : public primitive_base { + CLDNN_DECLARE_PRIMITIVE(slice) + + /// @brief Constructs slice primitive. + /// @param id This primitive id. + /// @param inputs List of primitive ids. + slice(const primitive_id& id, + const std::vector& inputs, + const tensor output_shape, + const primitive_id& ext_prim_id = "", + const padding& output_padding = padding()) + : primitive_base{id, inputs, ext_prim_id, output_padding}, + output_shape {output_shape} + {} + + tensor output_shape; +}; +/// @} +/// @} +/// @} +} // namespace cldnn diff --git a/inference-engine/thirdparty/clDNN/api/intel_gpu/runtime/tensor.hpp b/inference-engine/thirdparty/clDNN/api/intel_gpu/runtime/tensor.hpp index 846cf6e4bf6..aeea86c190e 100644 --- a/inference-engine/thirdparty/clDNN/api/intel_gpu/runtime/tensor.hpp +++ b/inference-engine/thirdparty/clDNN/api/intel_gpu/runtime/tensor.hpp @@ -85,6 +85,7 @@ struct format { bs_fs_zyx_bsv16_fsv16, ///< format used for 3D blocked convolution (batch and features blocked by 16) bs_fs_yx_bsv16_fsv16, ///< format used for 2D blocked convolution (batch and features blocked by 16) bs_fs_yx_bsv4_fsv4, ///< format used for 2D blocked convolution (batch and features blocked by 4) + bs_fs_yx_bsv8_fsv4, ///< format used for 2D blocked convolution (batch and features blocked by 8 and 4) bs_fs_yx_bsv4_fsv2, ///< format used for 2D blocked convolution (batch blocked by 4, features blocked by 2) bs_fs_zyx_bsv4_fsv4, ///< format used for 3D blocked convolution (batch and features blocked by 4) bs_fs_zyx_bsv4_fsv2, ///< format used for 3D blocked convolution (batch blocked by 4, features blocked by 2) @@ -255,6 +256,7 @@ struct format { { bs_fs_zyx_bsv16_fsv16, { 1, 1, 3, 0, "bfzyx", "bfxyz", {{0, 16 }, {1, 16}}}}, { bs_fs_yx_bsv16_fsv16, { 1, 1, 2, 0, "bfyx", "bfxy?", {{0, 16 }, {1, 16}}}}, { bs_fs_yx_bsv4_fsv4, { 1, 1, 2, 0, "bfyx", "bfxy?", {{0, 4 }, {1, 4}}}}, + { bs_fs_yx_bsv8_fsv4, { 1, 1, 2, 0, "bfyx", "bfxy?", {{0, 8 }, {1, 4}}}}, { bs_fs_yx_bsv4_fsv2, { 1, 1, 2, 0, "bfyx", "bfxy?", {{0, 4 }, {1, 2}}}}, { bs_fs_zyx_bsv4_fsv4, { 1, 1, 3, 0, "bfzyx", "bfxyz", {{0, 4 }, {1, 4}}}}, { bs_fs_zyx_bsv4_fsv2, { 1, 1, 3, 0, "bfzyx", "bfxyz", {{0, 4 }, {1, 2}}}}, diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/common/common_types.h b/inference-engine/thirdparty/clDNN/kernel_selector/common/common_types.h index c4745cbb1ca..775dc355661 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/common/common_types.h +++ b/inference-engine/thirdparty/clDNN/kernel_selector/common/common_types.h @@ -55,6 +55,7 @@ enum class KernelType { DEPTH_TO_SPACE, BATCH_TO_SPACE, SHUFFLE_CHANNELS, + SLICE, STRIDED_SLICE, REVERSE_SEQUENCE, BINARY_CONVOLUTION, diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.cpp index 97d6c7da91b..ce7ec16ad4e 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.cpp +++ b/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.cpp @@ -29,6 +29,7 @@ DataTensor::DataChannelArray DataTensor::dataChannelArray {{ { DataLayout::bs_fs_zyx_bsv16_fsv16, { 0, 1, 2, -1, 3, 4 } }, { DataLayout::bs_fs_yx_bsv16_fsv16, { 0, 1, -1, -1, 2, 3 } }, { DataLayout::bs_fs_yx_bsv4_fsv4, { 0, 1, -1, -1, 2, 3 } }, + { DataLayout::bs_fs_yx_bsv8_fsv4, { 0, 1, -1, -1, 2, 3 } }, { DataLayout::bs_fs_yx_bsv4_fsv2, { 0, 1, -1, -1, 2, 3 } }, { DataLayout::bs_fs_yx_bsv32_fsv32, { 0, 1, -1, -1, 2, 3 } }, { DataLayout::bs_fs_yx_bsv32_fsv16, { 0, 1, -1, -1, 2, 3 } }, @@ -206,6 +207,11 @@ NDims DataTensor::GetSimpleDims(const std::vector& d, DataLayout l) { newDims[2] = RoundUp(newDims[2], 4); newDims[3] = RoundUp(newDims[3], 4); break; + case bs_fs_yx_bsv8_fsv4: + assert(newDims.size() == 4); + newDims[2] = RoundUp(newDims[2], 4); + newDims[3] = RoundUp(newDims[3], 8); + break; case bs_fs_yx_bsv4_fsv2: assert(newDims.size() == 4); newDims[2] = RoundUp(newDims[2], 2); diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.h b/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.h index 7ed87ec644b..fb57e4592dc 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.h +++ b/inference-engine/thirdparty/clDNN/kernel_selector/common/tensor_type.h @@ -39,6 +39,7 @@ enum DataLayout { bs_fs_yx_bsv16_fsv16, // batch, feature, 2D spatial. Blocks of 16 batch and channels bs_fs_zyx_bsv16_fsv16, // batch, feature, 3D spatial. Blocks of 16 batch and channels bs_fs_yx_bsv4_fsv4, // batch, feature, 2D spatial. Blocks of 4 batch and 4 channels + bs_fs_yx_bsv8_fsv4, // batch, feature, 2D spatial. Blocks of 8 batch and 4 channels bs_fs_yx_bsv4_fsv2, // batch, feature, 2D spatial. Blocks of 4 batch and 2 channels bs_fs_yx_bsv32_fsv32, // batch, feature, 2D spatial. Blocks of 32 batch and 32 channels bs_fs_yx_bsv32_fsv16, // batch, feature, 2D spatial. Blocks of 32 batch and 16 channels diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convert_color/convert_color_kernel_base.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convert_color/convert_color_kernel_base.cpp index 8cbd44375d2..88648ba1809 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convert_color/convert_color_kernel_base.cpp +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convert_color/convert_color_kernel_base.cpp @@ -43,6 +43,9 @@ JitConstants ConvertColorKernelBase::GetJitConstants(const convert_color_params& case color_format::NV12: jit.AddConstant(MakeJitConstant("CONVERT_FROM_NV12", "")); break; + case color_format::I420: + jit.AddConstant(MakeJitConstant("CONVERT_FROM_I420", "")); + break; default: IE_THROW() << "Not supported input color format"; } diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convolution/convolution_kernel_base.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convolution/convolution_kernel_base.cpp index e810a835807..c08ba2d292a 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convolution/convolution_kernel_base.cpp +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/convolution/convolution_kernel_base.cpp @@ -196,15 +196,16 @@ KernelsData ConvolutionKernelBase::GetCommonKernelsData(const Params& params, return {}; } + auto preferredWeightsLayout = GetPreferredWeightsLayout(newParams); bool succeed = UpdateWeightsParams(newParams, options, - GetPreferredWeightsLayout(newParams), + preferredWeightsLayout, kd.weightsReorderParams, GetSupportedKey(), newParams.groups, newParams.transposed); - bool bSupportedWeightsLayout = newParams.weights.GetLayout() == GetPreferredWeightsLayout(newParams); + bool bSupportedWeightsLayout = newParams.weights.GetLayout() == preferredWeightsLayout; const bool bWeightsOK = bSupportedWeightsLayout || options.allowStaticInputReordering; if (!succeed || !bWeightsOK) { diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/gemm/gemm_kernel_tiled_opt.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/gemm/gemm_kernel_tiled_opt.cpp index 93df406663c..9f77050b46d 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/gemm/gemm_kernel_tiled_opt.cpp +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/gemm/gemm_kernel_tiled_opt.cpp @@ -13,6 +13,8 @@ ParamsKey GemmKernelTiledOpt::GetSupportedKey() const { k.EnableInputDataType(Datatype::F32); k.EnableOutputDataType(Datatype::F16); k.EnableOutputDataType(Datatype::F32); + k.EnableOutputDataType(Datatype::INT8); + k.EnableOutputDataType(Datatype::UINT8); k.EnableInputLayout(DataLayout::bfyx); k.EnableOutputLayout(DataLayout::bfyx); k.EnableInputLayout(DataLayout::bfzyx); @@ -21,6 +23,7 @@ ParamsKey GemmKernelTiledOpt::GetSupportedKey() const { k.EnableOutputLayout(DataLayout::bfwzyx); k.EnableBatching(); + k.EnableDifferentTypes(); return k; } @@ -117,25 +120,29 @@ JitConstants GemmKernelTiledOpt::GetJitConstants(const gemm_params& params) cons if (tuning_data.tile_k_size > tuning_data.simd_size) { jit.AddConstants({ MakeJitConstant("A_VEC_SIZE", tuning_data.tile_k_size / tuning_data.simd_size), - MakeJitConstant("A_FLOATN", std::string("UNIT_TYPE") + toCodeString(tuning_data.tile_k_size / tuning_data.simd_size)), + MakeJitConstant("A_FLOATN", std::string("CAT(INPUT0_TYPE, ") + toCodeString(tuning_data.tile_k_size / tuning_data.simd_size) + ")"), }); } else { jit.AddConstants({ MakeJitConstant("A_VEC_SIZE", 1), - MakeJitConstant("A_FLOATN", std::string("UNIT_TYPE")), + MakeJitConstant("A_FLOATN", std::string("INPUT0_TYPE")), }); } if (tuning_data.tile_n_size > tuning_data.simd_size) { jit.AddConstants({ MakeJitConstant("B_VEC_SIZE", b_vec_size), - MakeJitConstant("B_FLOATN", std::string("UNIT_TYPE") + toCodeString(b_vec_size)), + MakeJitConstant("B_FLOATN", std::string("CAT(INPUT1_TYPE, ") + toCodeString(b_vec_size) + ")"), + MakeJitConstant("OUTPUT_TYPE_VEC", std::string("CAT(OUTPUT_TYPE, ") + toCodeString(b_vec_size) + ")"), + MakeJitConstant("ACCUMULATOR_TYPE_VEC", std::string("CAT(ACCUMULATOR_TYPE, ") + toCodeString(b_vec_size) + ")"), }); } else { b_vec_size = 1; jit.AddConstants({ - MakeJitConstant("B_VEC_SIZE", 1), - MakeJitConstant("B_FLOATN", std::string("UNIT_TYPE")), + MakeJitConstant("B_VEC_SIZE", b_vec_size), + MakeJitConstant("B_FLOATN", std::string("INPUT1_TYPE")), + MakeJitConstant("OUTPUT_TYPE_VEC", std::string("OUTPUT_TYPE")), + MakeJitConstant("ACCUMULATOR_TYPE_VEC", std::string("ACCUMULATOR_TYPE")), }); } @@ -183,6 +190,10 @@ bool GemmKernelTiledOpt::Validate(const Params& params, const optional_params& o if ((gmm_params.transpose_input0 || gmm_params.transpose_input1) && gemm_leftovers) return false; + for (size_t i = 1; i < gmm_params.inputs.size(); i++) + if (gmm_params.inputs[0].GetDType() != gmm_params.inputs[i].GetDType()) + return false; + return true; } } // namespace kernel_selector diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_ref.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_ref.cpp new file mode 100644 index 00000000000..5d8d3030e6e --- /dev/null +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_ref.cpp @@ -0,0 +1,111 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include"slice_kernel_ref.h" +#include +#include + +namespace { + +void addJitConstantsForAttribute(kernel_selector::JitConstants &jit, + const std::string &name, const std::vector &attribute) { + using namespace kernel_selector; + jit.AddConstant(MakeJitConstant(name + "_BATCH", attribute[0])); + jit.AddConstant(MakeJitConstant(name + "_FEATURE", attribute[1])); + if (attribute.size() == 5) { // BFZYX + jit.AddConstant(MakeJitConstant(name + "_Z", attribute[2])); + jit.AddConstant(MakeJitConstant(name + "_Y", attribute[3])); + jit.AddConstant(MakeJitConstant(name + "_X", attribute[4])); + } else { // BFYX + jit.AddConstant(MakeJitConstant(name + "_Y", attribute[2])); + jit.AddConstant(MakeJitConstant(name + "_X", attribute[3])); + } +} + +} // anonymous namespace + +namespace kernel_selector { + +KernelsData SliceKernelRef::GetKernelsData(const Params ¶ms, + const optional_params &options) const { + if (!Validate(params, options)) { + return {}; + } + KernelData kernel_data = KernelData::Default(params); + slice_params &new_params = + dynamic_cast(*kernel_data.params.get()); + auto dispatch_data = SetDefault(new_params, options); + auto entry_point = GetEntryPoint(kernelName, new_params.layerID, params, options); + auto slice_specific_jit = GetJitConstants(new_params); + auto jit = CreateJit(kernelName, slice_specific_jit, entry_point); + + FillCLKernelData(kernel_data.kernels[0], dispatch_data, params.engineInfo, + kernelName, jit, entry_point); + + return {kernel_data}; +} + +KernelsPriority SliceKernelRef::GetKernelsPriority(const Params&/*params*/, + const optional_params&/*options*/) const { + return DONT_USE_IF_HAVE_SOMETHING_ELSE; +} + +ParamsKey SliceKernelRef::GetSupportedKey() const { + ParamsKey k; + k.EnableInputDataType(Datatype::INT8); + k.EnableInputDataType(Datatype::UINT8); + k.EnableInputDataType(Datatype::F16); + k.EnableInputDataType(Datatype::F32); + k.EnableInputDataType(Datatype::INT32); + k.EnableInputDataType(Datatype::INT64); + k.EnableOutputDataType(Datatype::F16); + k.EnableOutputDataType(Datatype::F32); + k.EnableOutputDataType(Datatype::INT32); + k.EnableOutputDataType(Datatype::INT64); + k.EnableInputLayout(DataLayout::bfyx); + k.EnableInputLayout(DataLayout::bfzyx); + k.EnableOutputLayout(DataLayout::bfyx); + k.EnableOutputLayout(DataLayout::bfzyx); + k.EnableTensorOffset(); + k.EnableTensorPitches(); + k.EnableBatching(); + return k; +} + +bool SliceKernelRef::Validate(const Params &p, const optional_params &o) const { + if (p.GetType() != KernelType::SLICE || o.GetType() != KernelType::SLICE) { + return false; + } + + const slice_params ¶ms = dynamic_cast(p); + if (params.inputs.empty()) + return false; + + if (params.output.Dimentions() > 5 || params.inputs[0].Dimentions() > 5) + return false; + + return true; +} + +JitConstants SliceKernelRef::GetJitConstants(const slice_params ¶ms) const { + JitConstants jit = MakeBaseParamsJitConstants(params); + addJitConstantsForAttribute(jit, "SLICE_BEGIN", params.start); + addJitConstantsForAttribute(jit, "SLICE_END", params.end); + addJitConstantsForAttribute(jit, "SLICE_STEP", params.step); + return jit; +} + +CommonDispatchData SliceKernelRef::SetDefault(const slice_params ¶ms, + const optional_params&) const { + CommonDispatchData dispatchData; + dispatchData.gws = { params.output.Batch().v, params.output.Feature().v, + params.output.Z().v * params.output.Y().v * params.output.X().v }; + + dispatchData.lws = GetOptimalLocalWorkGroupSizes(dispatchData.gws, + params.engineInfo); + + return dispatchData; +} + +} // namespace kernel_selector diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_ref.h b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_ref.h new file mode 100644 index 00000000000..5cfb3533090 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_ref.h @@ -0,0 +1,42 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include "kernel_base_opencl.h" +#include + +namespace kernel_selector { + +struct slice_params: public base_params { + slice_params() : base_params(KernelType::SLICE) {} + + std::vector start; + std::vector end; + std::vector step; +}; + +struct slice_optional_params : optional_params { + slice_optional_params() : optional_params(KernelType::SLICE) {} +}; + +class SliceKernelRef: public KernelBaseOpenCL { +public: + SliceKernelRef() : + KernelBaseOpenCL { "slice_ref" } { + } + KernelsData GetKernelsData(const Params ¶ms, + const optional_params &options) const override; + KernelsPriority GetKernelsPriority(const Params ¶ms, + const optional_params &options) const override; + ParamsKey GetSupportedKey() const override; + bool Validate(const Params &p, const optional_params &o) const override; + +private: + JitConstants GetJitConstants(const slice_params ¶ms) const; + CommonDispatchData SetDefault(const slice_params ¶ms, + const optional_params&) const; +}; + +} // namespace kernel_selector diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_selector.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_selector.cpp new file mode 100644 index 00000000000..4b6adcec2b9 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_selector.cpp @@ -0,0 +1,18 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#include "slice_kernel_selector.h" +#include "slice_kernel_ref.h" + +namespace kernel_selector { + +slice_kernel_selector::slice_kernel_selector() { + Attach(); +} + +KernelsData slice_kernel_selector::GetBestKernels(const Params ¶ms, + const optional_params &options) const { + return GetNaiveBestKernel(params, options, KernelType::SLICE); +} + +} // namespace kernel_selector diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_selector.h b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_selector.h new file mode 100644 index 00000000000..b6e9c88c137 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/actual_kernels/slice/slice_kernel_selector.h @@ -0,0 +1,23 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include + +namespace kernel_selector { + +class slice_kernel_selector : public kernel_selector_base { +public: + static slice_kernel_selector& Instance() { + static slice_kernel_selector instance_; + return instance_; + } + + slice_kernel_selector(); + + KernelsData GetBestKernels(const Params& params, const optional_params& options) const override; +}; + +} // namespace kernel_selector diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/convert_color_ref.cl b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/convert_color_ref.cl index 24703d15d90..2e24deb4236 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/convert_color_ref.cl +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/convert_color_ref.cl @@ -5,11 +5,14 @@ #include "include/batch_headers/fetch_data.cl" #include "include/batch_headers/data_types.cl" -#ifdef CONVERT_FROM_NV12 +#if defined(CONVERT_FROM_NV12) || defined(CONVERT_FROM_I420) #ifdef BUFFER_MEM -KERNEL(convert_color_ref)(const __global INPUT0_TYPE* input_y, -#if INPUTS_COUNT == 2 - const __global INPUT1_TYPE* input_uv, +KERNEL(convert_color_ref)(const __global INPUT0_TYPE* input1, +#if INPUTS_COUNT > 1 + const __global INPUT1_TYPE* input2, +#if INPUTS_COUNT == 3 + const __global INPUT2_TYPE* input3, +#endif #endif __global OUTPUT_TYPE* output) { @@ -17,16 +20,19 @@ KERNEL(convert_color_ref)(const __global INPUT0_TYPE* input_y, const uint y = get_global_id(1); const uint x = get_global_id(2); - float Y = input_y[GET_DATA_INDEX(INPUT0, b, 0, y, x)]; + float Y = input1[GET_DATA_INDEX(INPUT0, b, 0, y, x)]; -#if INPUTS_COUNT == 2 - float U = input_uv[GET_DATA_INDEX(INPUT1, b, 0, y / 2, x / 2)]; - float V = input_uv[GET_DATA_INDEX(INPUT1, b, 1, y / 2, x / 2)]; +#if INPUTS_COUNT == 3 + float U = input2[GET_DATA_INDEX(INPUT1, b, 0, y / 2, x / 2)]; + float V = input3[GET_DATA_INDEX(INPUT2, b, 0, y / 2, x / 2)]; +#elif INPUTS_COUNT == 2 + float U = input2[GET_DATA_INDEX(INPUT1, b, 0, y / 2, x / 2)]; + float V = input2[GET_DATA_INDEX(INPUT1, b, 1, y / 2, x / 2)]; #else // Single plane uint input_uv_offset = INPUT0_SIZE_X * INPUT0_SIZE_Y / 3 * 2; - float U = input_y[GET_DATA_INDEX(INPUT0, b, 0, y / 2, (x / 2) * 2) + input_uv_offset]; - float V = input_y[GET_DATA_INDEX(INPUT0, b, 1, y / 2, (x / 2) * 2) + input_uv_offset]; + float U = input1[GET_DATA_INDEX(INPUT0, b, 0, y / 2, (x / 2) * 2) + input_uv_offset]; + float V = input1[GET_DATA_INDEX(INPUT0, b, 1, y / 2, (x / 2) * 2) + input_uv_offset]; #endif float Ycomponent = mad(Y, 1.164f, -18.624f); @@ -57,9 +63,12 @@ KERNEL(convert_color_ref)(const __global INPUT0_TYPE* input_y, #ifdef SURFACE_MEM -KERNEL(convert_color_ref)(read_only image2d_t input_y, -#if INPUTS_COUNT == 2 - read_only image2d_t input_uv, +KERNEL(convert_color_ref)(read_only image2d_t input1, +#if INPUTS_COUNT > 1 + read_only image2d_t input2, +#if INPUTS_COUNT == 3 + read_only image2d_t input3, +#endif #endif __global OUTPUT_TYPE* output) { @@ -67,17 +76,22 @@ KERNEL(convert_color_ref)(read_only image2d_t input_y, const uint y = get_global_id(1); const uint x = get_global_id(2); - float4 Y = read_imagef(input_y, (int2)(x, y)); + float4 Y = read_imagef(input1, (int2)(x, y)); float Ycomponent = mad(Y.x, 296.82f, -18.624f); -#if INPUTS_COUNT == 2 - float4 UV = read_imagef(input_uv, (int2)(x / 2, y / 2)); +#if INPUTS_COUNT == 3 + float4 U = read_imagef(input2, (int2)(x / 2, y / 2)); + float4 V = read_imagef(input3, (int2)(x / 2, y / 2)); + float Ucomponent = mad(U.x, 255.0f, -128.f); + float Vcomponent = mad(V.x, 255.0f, -128.f); +#elif INPUTS_COUNT == 2 + float4 UV = read_imagef(input2, (int2)(x / 2, y / 2)); float Ucomponent = mad(UV.x, 255.0f, -128.f); float Vcomponent = mad(UV.y, 255.0f, -128.f); #else // Single plane uint input_y_offset = INPUT0_SIZE_Y / 3 * 2; - float4 U = read_imagef(input_y, (int2)((x / 2) * 2, y / 2 + input_y_offset)); - float4 V = read_imagef(input_y, (int2)((x / 2) * 2 + 1, y / 2 + input_y_offset)); + float4 U = read_imagef(input1, (int2)((x / 2) * 2, y / 2 + input_y_offset)); + float4 V = read_imagef(input1, (int2)((x / 2) * 2 + 1, y / 2 + input_y_offset)); float Ucomponent = mad(U.x, 255.0f, -128.f); float Vcomponent = mad(V.x, 255.0f, -128.f); #endif diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/gemm_tiled_opt.cl b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/gemm_tiled_opt.cl index ae79242b369..cba34cdcf8c 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/gemm_tiled_opt.cl +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/gemm_tiled_opt.cl @@ -3,7 +3,7 @@ // #include "include/batch_headers/fetch_data.cl" -#include "include/unit_type.cl" +#include "include/batch_headers/data_types.cl" #define unroll_for __attribute__((opencl_unroll_hint)) for @@ -14,17 +14,17 @@ #endif // INPUT0_TYPE_SIZE == 4 #if TILE_K > SIMD_WIDTH - #define BLOCK_READ_A(ptr, offset) CAT(UNIT_BLOCK_READ, A_VEC_SIZE)(ptr, offset) + #define BLOCK_READ_A(ptr, offset) BLOCK_READN(INPUT0_TYPE, A_VEC_SIZE, ptr, offset) #else // TILE_K > SIMD_WIDTH - #define BLOCK_READ_A(ptr, offset) UNIT_BLOCK_READ(ptr, offset) + #define BLOCK_READ_A(ptr, offset) BLOCK_READN(INPUT0_TYPE, 1, ptr, offset) #endif // TILE_K > SIMD_WIDTH #if TILE_N > SIMD_WIDTH - #define BLOCK_READ_B(ptr, offset) CAT(UNIT_BLOCK_READ, B_VEC_SIZE)(ptr, offset) - #define BLOCK_WRITE_C(ptr, offset, data) CAT(UNIT_BLOCK_WRITE, B_VEC_SIZE)(ptr, offset, data) + #define BLOCK_READ_B(ptr, offset) BLOCK_READN(INPUT1_TYPE, B_VEC_SIZE, ptr, offset) + #define BLOCK_WRITE_C(ptr, offset, data) BLOCK_WRITEN(OUTPUT_TYPE, B_VEC_SIZE, ptr, offset, data) #else // TILE_N > SIMD_WIDTH - #define BLOCK_READ_B(ptr, offset) UNIT_BLOCK_READ(ptr, offset) - #define BLOCK_WRITE_C(ptr, offset, data) UNIT_BLOCK_WRITE(ptr, offset, data) + #define BLOCK_READ_B(ptr, offset) BLOCK_READN(INPUT1_TYPE, 1, ptr, offset) + #define BLOCK_WRITE_C(ptr, offset, data) BLOCK_WRITEN(OUTPUT_TYPE, 1, ptr, offset, data) #endif // TILE_N > SIMD_WIDTH inline uint FUNC(get_input0_batch_offset)(uint b, uint f, uint w, uint z) { @@ -294,9 +294,9 @@ KERNEL(gemm_tiled_opt)( #if TILE_N_NOT_DIVISIBLE if (b_raw_global_id < N) { #ifdef INPUT2_TYPE - OUTPUT_TYPE dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id] + TO_ACCUMULATOR_TYPE(BETA) * c_ptr[sglid]; + ACCUMULATOR_TYPE dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id] + TO_ACCUMULATOR_TYPE(BETA) * c_ptr[sglid]; #else // INPUT2_TYPE - OUTPUT_TYPE dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id]; + ACCUMULATOR_TYPE dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id]; #endif // INPUT2_TYPE #if HAS_FUSED_OPS @@ -316,9 +316,9 @@ KERNEL(gemm_tiled_opt)( #ifdef INPUT2_TYPE B_FLOATN c_val = BLOCK_READ_B(c_ptr, 0); - B_FLOATN dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id] + TO_ACCUMULATOR_TYPE(BETA) * c_val; + ACCUMULATOR_TYPE_VEC dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id] + TO_ACCUMULATOR_TYPE(BETA) * c_val; #else // INPUT2_TYPE - B_FLOATN dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id]; + ACCUMULATOR_TYPE_VEC dequantized = TO_ACCUMULATOR_TYPE(ALPHA) * c_tile[write_id]; #endif // INPUT2_TYPE #if HAS_FUSED_OPS @@ -327,7 +327,7 @@ KERNEL(gemm_tiled_opt)( #else // FUSED_OPS_CAN_USE_PRELOAD FUSED_OPS_VEC; #endif // FUSED_OPS_CAN_USE_PRELOAD - B_FLOATN res = FUSED_OPS_RESULT_VEC; + OUTPUT_TYPE_VEC res = FUSED_OPS_RESULT_VEC; BLOCK_WRITE_C(d_ptr, 0, res); #else // HAS_FUSED_OPS BLOCK_WRITE_C(d_ptr, 0, dequantized); diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/include/batch_headers/fetch_data.cl b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/include/batch_headers/fetch_data.cl index b35522168b5..5af9d161ce3 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/include/batch_headers/fetch_data.cl +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/include/batch_headers/fetch_data.cl @@ -506,6 +506,22 @@ inline uint get_bs_fs_zyx_bsv_fsv_index(uint b, uint f, uint z, uint y, uint x, CAT(prefix, _PAD_BEFORE_SIZE_X), \ CAT(prefix, _PAD_AFTER_SIZE_X), 4, 4) +#define GET_DATA_BS_FS_YX_BSV8_FSV4_INDEX(prefix, b, f, y, x) \ + get_bs_fs_zyx_bsv_fsv_index( \ + b, f, 0, y, x, \ + CAT(prefix, _SIZE_X), \ + CAT(prefix, _SIZE_Y), \ + CAT(prefix, _SIZE_Z), \ + CAT(prefix, _FEATURE_NUM), \ + CAT(prefix, _PAD_BEFORE_FEATURE_NUM), \ + CAT(prefix, _PAD_AFTER_FEATURE_NUM), \ + CAT(prefix, _PAD_BEFORE_SIZE_Z), \ + CAT(prefix, _PAD_AFTER_SIZE_Z), \ + CAT(prefix, _PAD_BEFORE_SIZE_Y), \ + CAT(prefix, _PAD_AFTER_SIZE_Y), \ + CAT(prefix, _PAD_BEFORE_SIZE_X), \ + CAT(prefix, _PAD_AFTER_SIZE_X), 8, 4) + #define GET_DATA_BS_FS_YX_BSV4_FSV2_INDEX(prefix, b, f, y, x) \ get_bs_fs_zyx_bsv_fsv_index( \ b, f, 0, y, x, \ @@ -605,6 +621,23 @@ inline uint get_bs_fs_zyx_bsv_fsv_index(uint b, uint f, uint z, uint y, uint x, CAT(prefix, _PAD_BEFORE_SIZE_X), \ CAT(prefix, _PAD_AFTER_SIZE_X), 4, 4) +#define GET_DATA_BS_FS_YX_BSV8_FSV4_INDEX_SAFE(prefix, b, f, y, x) \ + get_bs_fs_zyx_bsv_fsv_index_safe( \ + b, f, 0, y, x, \ + CAT(prefix, _SIZE_X), \ + CAT(prefix, _SIZE_Y), \ + CAT(prefix, _SIZE_Z), \ + CAT(prefix, _FEATURE_NUM), \ + CAT(prefix, _BATCH_NUM), \ + CAT(prefix, _PAD_BEFORE_FEATURE_NUM), \ + CAT(prefix, _PAD_AFTER_FEATURE_NUM), \ + CAT(prefix, _PAD_BEFORE_SIZE_Z), \ + CAT(prefix, _PAD_AFTER_SIZE_Z), \ + CAT(prefix, _PAD_BEFORE_SIZE_Y), \ + CAT(prefix, _PAD_AFTER_SIZE_Y), \ + CAT(prefix, _PAD_BEFORE_SIZE_X), \ + CAT(prefix, _PAD_AFTER_SIZE_X), 8, 4) + #define GET_DATA_BS_FS_YX_BSV4_FSV2_INDEX_SAFE(prefix, b, f, y, x) \ get_bs_fs_zyx_bsv_fsv_index_safe( \ b, f, 0, y, x, \ diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/slice_ref.cl b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/slice_ref.cl new file mode 100644 index 00000000000..5ba13f890c0 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/cl_kernels/slice_ref.cl @@ -0,0 +1,36 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "include/batch_headers/fetch_data.cl" + +KERNEL(slice_ref)(const __global INPUT0_TYPE* input, __global OUTPUT_TYPE* output) +{ + const uint batch = get_global_id(0); + const uint feature = get_global_id(1); +#if INPUT0_DIMS <= 4 + const uint xy = get_global_id(2); + const uint y = xy / OUTPUT_SIZE_X; + const uint x = xy % OUTPUT_SIZE_X; + const uint output_index = OUTPUT_GET_INDEX(batch, feature, y, x); + const uint input_index = INPUT0_GET_INDEX( + SLICE_BEGIN_BATCH + batch * SLICE_STEP_BATCH, + SLICE_BEGIN_FEATURE + feature * SLICE_STEP_FEATURE, + SLICE_BEGIN_Y + y * SLICE_STEP_Y, + SLICE_BEGIN_X + x * SLICE_STEP_X); +#elif INPUT0_DIMS == 5 + const uint xyz = get_global_id(2); + const uint yx = xyz % (OUTPUT_SIZE_X * OUTPUT_SIZE_Y); + const uint z = xyz / (OUTPUT_SIZE_X * OUTPUT_SIZE_Y); + const uint y = yx / OUTPUT_SIZE_X; + const uint x = yx % OUTPUT_SIZE_X; + const uint output_index = OUTPUT_GET_INDEX(batch, feature, z, y, x); + const uint input_index = INPUT0_GET_INDEX( + SLICE_BEGIN_BATCH + batch * SLICE_STEP_BATCH, + SLICE_BEGIN_FEATURE + feature * SLICE_STEP_FEATURE, + SLICE_BEGIN_Z + z * SLICE_STEP_Z, + SLICE_BEGIN_Y + y * SLICE_STEP_Y, + SLICE_BEGIN_X + x * SLICE_STEP_X); +#endif + output[output_index] = ACTIVATION(input[input_index], ACTIVATION_PARAMS); +} diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/common/jitter.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/core/common/jitter.cpp index e5927422532..73f164b3659 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/common/jitter.cpp +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/common/jitter.cpp @@ -334,6 +334,7 @@ JitDefinitions DataTensorJitConstant::GetDefinitions() const { layout == DataLayout::fs_b_yx_fsv32 || layout == DataLayout::bs_fs_yx_bsv16_fsv16 || layout == DataLayout::bs_fs_yx_bsv4_fsv4 || + layout == DataLayout::bs_fs_yx_bsv8_fsv4 || layout == DataLayout::bs_fs_yx_bsv4_fsv2 || layout == DataLayout::bs_fs_yx_bsv32_fsv16 || layout == DataLayout::bs_fs_yx_bsv32_fsv32) { @@ -346,6 +347,7 @@ JitDefinitions DataTensorJitConstant::GetDefinitions() const { layout == DataLayout::bs_fs_yx_bsv32_fsv32 || layout == DataLayout::bs_fs_yx_bsv32_fsv16 || layout == DataLayout::bs_fs_yx_bsv4_fsv4 || + layout == DataLayout::bs_fs_yx_bsv8_fsv4 || layout == DataLayout::bs_fs_yx_bsv4_fsv2 || layout == DataLayout::bs_fs_yx_bsv16_fsv16) safe_index_func_val = "GET_DATA_" + layout_str + "_INDEX_SAFE(" + _name + ", b, f, y, x)"; diff --git a/inference-engine/thirdparty/clDNN/kernel_selector/core/kernel_selector_common.cpp b/inference-engine/thirdparty/clDNN/kernel_selector/core/kernel_selector_common.cpp index 3491e475e07..75349b31f3e 100644 --- a/inference-engine/thirdparty/clDNN/kernel_selector/core/kernel_selector_common.cpp +++ b/inference-engine/thirdparty/clDNN/kernel_selector/core/kernel_selector_common.cpp @@ -105,6 +105,7 @@ std::string toString(DataLayout l) { case kernel_selector::DataLayout::bs_fs_yx_bsv16_fsv16: return "BS_FS_YX_BSV16_FSV16"; case kernel_selector::DataLayout::bs_fs_zyx_bsv16_fsv16: return "BS_FS_ZYX_BSV16_FSV16"; case kernel_selector::DataLayout::bs_fs_yx_bsv4_fsv4: return "BS_FS_YX_BSV4_FSV4"; + case kernel_selector::DataLayout::bs_fs_yx_bsv8_fsv4: return "BS_FS_YX_BSV8_FSV4"; case kernel_selector::DataLayout::bs_fs_yx_bsv4_fsv2: return "BS_FS_YX_BSV4_FSV2"; case kernel_selector::DataLayout::bs_fs_yx_bsv32_fsv32: return "BS_FS_YX_BSV32_FSV32"; case kernel_selector::DataLayout::bs_fs_yx_bsv32_fsv16: return "BS_FS_YX_BSV32_FSV16"; diff --git a/inference-engine/thirdparty/clDNN/src/binary_convolution.cpp b/inference-engine/thirdparty/clDNN/src/binary_convolution.cpp index d10ee575a93..acec60b0e5e 100644 --- a/inference-engine/thirdparty/clDNN/src/binary_convolution.cpp +++ b/inference-engine/thirdparty/clDNN/src/binary_convolution.cpp @@ -125,7 +125,7 @@ binary_convolution_inst::typed_primitive_inst(network& network, binary_convoluti "Only one-dimensional batch size are supported"); CLDNN_ERROR_LESS_THAN(node.id(), "Weights feature maps number", - (input_inst.size.feature[0] + pad.feature[0]) / split, + input_inst.size.feature[0], "input feature maps number", filter_inst.size.feature[0], "Weights/ifm mismatch"); diff --git a/inference-engine/thirdparty/clDNN/src/convolution.cpp b/inference-engine/thirdparty/clDNN/src/convolution.cpp index 0c478a0da6c..fe1de244f9c 100644 --- a/inference-engine/thirdparty/clDNN/src/convolution.cpp +++ b/inference-engine/thirdparty/clDNN/src/convolution.cpp @@ -97,7 +97,7 @@ layout convolution_inst::calc_output_layout(convolution_node const& node) { input_layout.format == format::image_2d_weights_winograd_6x3_s1_xfbyb) CLDNN_ERROR_MESSAGE( node.id(), - "Input for convolution should not be in windograd weights format - it is reserved for weights only"); + "Input for convolution should not be in winograd weights format - it is reserved for weights only"); if (input_layout.format == format::winograd_2x3_s1_data) { CLDNN_ERROR_NOT_EQUAL(node.id(), @@ -369,10 +369,19 @@ convolution_inst::typed_primitive_inst(network& network, convolution_node const& "Only one-dimensional batch size are supported"); CLDNN_ERROR_LESS_THAN(node.id(), "Weights feature maps number", - (input_inst.size.feature[0] + pad.feature[0]) / split, + input_inst.size.feature[0], "input feature maps number", weights_ifm, "Weights/ifm mismatch"); + + if (!argument.grouped_weights_shape && !format::is_grouped(filter_inst.format)) { + CLDNN_ERROR_NOT_EQUAL(node.id(), + "Weights feature maps number", + input_inst.size.feature[0], + "input feature maps number", + weights_ifm, + "Weights/ifm mismatch"); + } } } } // namespace cldnn diff --git a/inference-engine/thirdparty/clDNN/src/deconvolution.cpp b/inference-engine/thirdparty/clDNN/src/deconvolution.cpp index c506c77d058..ab11ef233f4 100644 --- a/inference-engine/thirdparty/clDNN/src/deconvolution.cpp +++ b/inference-engine/thirdparty/clDNN/src/deconvolution.cpp @@ -82,11 +82,11 @@ layout deconvolution_inst::calc_output_layout(deconvolution_node const& node) { int32_t off_factor = -2; size_t spatial_dims = cldnn::format::traits(input_layout.format).spatial_num; CLDNN_ERROR_GREATER_THAN(node.id(), - "number of spatial dimensions", - spatial_dims, - "expected number of dimensions", - 3, - "As for now, deconvolutions with more than 3 dimensions are not supported"); + "number of spatial dimensions", + spatial_dims, + "expected number of dimensions", + 3, + "As for now, deconvolutions with more than 3 dimensions are not supported"); int32_t x = off_factor * pad.spatial[0] + (input_layout.size.spatial[0] - 1) * strd.spatial[0] + filter_size.spatial[0]; int32_t y = 1; @@ -208,6 +208,7 @@ deconvolution_inst::typed_primitive_inst(network& network, deconvolution_node co 1, "Spatial[0] of bias should be 1. Bias isn't 1D vector."); } + CLDNN_ERROR_NOT_EQUAL(node.id(), "deconvolution padding filling value", node.get_output_layout().data_padding.filling_value(), @@ -240,10 +241,19 @@ deconvolution_inst::typed_primitive_inst(network& network, deconvolution_node co "Only one-dimensional features are supported"); CLDNN_ERROR_LESS_THAN(node.id(), "Weights feature maps number", - (input_inst.size.feature[0] + pad.feature[0]) / split, + input_inst.size.feature[0], "input feature maps number", weights_ifm, - "Weights/ifm mimsmatch"); + "Weights/ifm mismatch"); + + if (!argument.grouped_weights_shape && !format::is_grouped(filter_inst.format)) { + CLDNN_ERROR_NOT_EQUAL(node.id(), + "Weights feature maps number", + input_inst.size.feature[0], + "input feature maps number", + weights_ifm, + "Weights/ifm mismatch"); + } } } } // namespace cldnn diff --git a/inference-engine/thirdparty/clDNN/src/graph_optimizer/add_onednn_optimization_attributes.cpp b/inference-engine/thirdparty/clDNN/src/graph_optimizer/add_onednn_optimization_attributes.cpp index bb7b396467c..5b8e65015b7 100644 --- a/inference-engine/thirdparty/clDNN/src/graph_optimizer/add_onednn_optimization_attributes.cpp +++ b/inference-engine/thirdparty/clDNN/src/graph_optimizer/add_onednn_optimization_attributes.cpp @@ -7,12 +7,34 @@ #include "pass_manager.h" #include "program_node.h" +#ifdef ENABLE_ONEDNN_FOR_GPU +#include "fully_connected_inst.h" +#include +#endif + using namespace cldnn; void add_onednn_optimization_attributes::run(program& p) { #ifdef ENABLE_ONEDNN_FOR_GPU for (auto& node : p.get_processing_order()) { if (node->get_preferred_impl_type() == impl_types::onednn) { + if (node->is_type()) { + auto fc_prim = node->as().get_primitive(); + + // Reshape fused ops tensors for OneDNN FC if needed + if (fc_prim->input_size == 3) { + for (auto& fused_prim : node->get_fused_primitives()) { + auto fused_node = fused_prim.node; + if (fused_node->is_type()) { + auto& dependency = node->get_dependency(fused_prim.dep_start_idx); + auto original_layout = dependency.get_output_layout(); + onednn::combine_bf_with_first_spatial_dim(original_layout); + dependency.set_output_layout(original_layout, false); + } + } + } + } + node->init_onednn_primitive_attributes(); } } diff --git a/inference-engine/thirdparty/clDNN/src/graph_optimizer/reorder_inputs.cpp b/inference-engine/thirdparty/clDNN/src/graph_optimizer/reorder_inputs.cpp index f0869e06b2a..4e2b1892b60 100644 --- a/inference-engine/thirdparty/clDNN/src/graph_optimizer/reorder_inputs.cpp +++ b/inference-engine/thirdparty/clDNN/src/graph_optimizer/reorder_inputs.cpp @@ -536,7 +536,7 @@ void reorder_inputs::run(program& p, layout_optimizer& lo, reorder_factory& rf) } }; - const auto reorder_input_deconvolution = [&p, &lo, &rf](typed_program_node& deconv_node) { + const auto reorder_input_and_weights_deconvolution = [&p, &lo, &rf](typed_program_node& deconv_node) { auto& input = deconv_node.input(); auto input_layout = input.get_output_layout(); auto new_format = lo.get_preferred_format(deconv_node); @@ -547,14 +547,41 @@ void reorder_inputs::run(program& p, layout_optimizer& lo, reorder_factory& rf) p.add_intermediate(reorder.first, deconv_node, 0, !reorder.second); } } + + auto& weights = deconv_node.weights(); + auto weights_layout = weights.get_output_layout(); + if (!format::is_simple_data_format(weights_layout.format) && !weights.is_type() && !weights.is_constant()) { + auto dims = weights_layout.format.dimension(); + auto preferred_format = dims <= 4 ? format::bfyx : dims == 5 ? format::bfzyx : format::bfwzyx; + auto reorder = rf.get_reorder(weights.id(), weights_layout, + layout{ weights_layout.data_type, preferred_format, weights_layout.size }); + if (reorder.first) { + p.add_intermediate(reorder.first, deconv_node, 1, !reorder.second); + } + } + }; + + const auto reorder_weights_convolution = [&p, &lo, &rf](typed_program_node& conv_node) { + auto& weights = conv_node.weights(); + auto weights_layout = weights.get_output_layout(); + if (!format::is_simple_data_format(weights_layout.format) && !weights.is_type() && !weights.is_constant()) { + auto dims = weights_layout.format.dimension(); + auto preferred_format = dims <= 4 ? format::bfyx : dims == 5 ? format::bfzyx : format::bfwzyx; + auto reorder = rf.get_reorder(weights.id(), weights_layout, + layout{ weights_layout.data_type, preferred_format, weights_layout.size }); + if (reorder.first) { + p.add_intermediate(reorder.first, conv_node, 1, !reorder.second); + } + } }; for (auto& prim : p.get_processing_order()) { - program_helpers::do_for_types( + program_helpers::do_for_types( *prim, reorder_input_detection_output, reorder_input_binary_convolution, - reorder_input_deconvolution); + reorder_input_and_weights_deconvolution, + reorder_weights_convolution); } for (auto n : p.get_processing_order()) { diff --git a/inference-engine/thirdparty/clDNN/src/impls/ocl/convolution.cpp b/inference-engine/thirdparty/clDNN/src/impls/ocl/convolution.cpp index a0c8a0874a1..69d79e22315 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/ocl/convolution.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/ocl/convolution.cpp @@ -225,6 +225,11 @@ attach_convolution_impl::attach_convolution_impl() { std::make_tuple(data_types::u8, format::bs_fs_yx_bsv4_fsv4), std::make_tuple(data_types::i8, format::bs_fs_yx_bsv4_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f16, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::u8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::i8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::f16, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::u8, format::bs_fs_yx_bsv4_fsv2), diff --git a/inference-engine/thirdparty/clDNN/src/impls/ocl/eltwise.cpp b/inference-engine/thirdparty/clDNN/src/impls/ocl/eltwise.cpp index 3e8c233e126..b15c473fb89 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/ocl/eltwise.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/ocl/eltwise.cpp @@ -214,6 +214,13 @@ attach_eltwise_impl::attach_eltwise_impl() { std::make_tuple(data_types::i32, format::bs_fs_yx_bsv4_fsv4), std::make_tuple(data_types::i64, format::bs_fs_yx_bsv4_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f16, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::i8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::u8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::i32, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::i64, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::f16, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::i8, format::bs_fs_yx_bsv4_fsv2), diff --git a/inference-engine/thirdparty/clDNN/src/impls/ocl/register.cpp b/inference-engine/thirdparty/clDNN/src/impls/ocl/register.cpp index 329d31b9574..b07d40e4134 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/ocl/register.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/ocl/register.cpp @@ -65,6 +65,7 @@ void register_implementations() { REGISTER_OCL(softmax); REGISTER_OCL(space_to_batch); REGISTER_OCL(space_to_depth); + REGISTER_OCL(slice); REGISTER_OCL(strided_slice); REGISTER_OCL(tile); REGISTER_OCL(lstm_dynamic_input); diff --git a/inference-engine/thirdparty/clDNN/src/impls/ocl/register.hpp b/inference-engine/thirdparty/clDNN/src/impls/ocl/register.hpp index a0b46ef8931..6232a937ccf 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/ocl/register.hpp +++ b/inference-engine/thirdparty/clDNN/src/impls/ocl/register.hpp @@ -53,6 +53,7 @@ #include "intel_gpu/primitives/scatter_nd_update.hpp" #include "intel_gpu/primitives/select.hpp" #include "intel_gpu/primitives/shuffle_channels.hpp" +#include "intel_gpu/primitives/slice.hpp" #include "intel_gpu/primitives/softmax.hpp" #include "intel_gpu/primitives/space_to_batch.hpp" #include "intel_gpu/primitives/strided_slice.hpp" @@ -73,7 +74,7 @@ void register_implementations(); namespace detail { -#define REGISTER_OCL(prim) \ +#define REGISTER_OCL(prim) \ struct attach_##prim##_impl { \ attach_##prim##_impl(); \ } @@ -130,6 +131,7 @@ REGISTER_OCL(scatter_elements_update); REGISTER_OCL(scatter_nd_update); REGISTER_OCL(select); REGISTER_OCL(shuffle_channels); +REGISTER_OCL(slice); REGISTER_OCL(softmax); REGISTER_OCL(space_to_batch); REGISTER_OCL(space_to_depth); diff --git a/inference-engine/thirdparty/clDNN/src/impls/ocl/slice.cpp b/inference-engine/thirdparty/clDNN/src/impls/ocl/slice.cpp new file mode 100644 index 00000000000..8c1f2e9dec9 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/src/impls/ocl/slice.cpp @@ -0,0 +1,138 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include +#include +#include +#include +#include +#include "primitive_base.hpp" +#include +#include +#include + +namespace cldnn { +namespace ocl { + +namespace { +template::value>::type> +std::vector extractIntegerData(const data_node& node, const stream& stream) { + mem_lock lock{node.get_attached_memory_ptr(), stream}; + T* data = lock.data(); + std::vector integer_data; + integer_data.reserve(node.get_output_layout().count()); + std::copy(data, data + node.get_output_layout().count(), std::back_inserter(integer_data)); + return integer_data; +} + +std::vector extractIntegerData(const data_node& node, const stream& stream) { + switch (node.get_output_layout().data_type) { + case data_types::u8: + return extractIntegerData(node, stream); + case data_types::i8: + return extractIntegerData(node, stream); + case data_types::i32: + return extractIntegerData(node, stream); + case data_types::i64: + return extractIntegerData(node, stream); + default: + CLDNN_ERROR_DATA_TYPES_MISMATCH(node.id(), "Slice parameter", + node.get_output_layout().data_type, "Any integral type", + data_types::i32, "Slice parameters should be of integral type."); + } + return {}; +} + +std::vector extractShape(kernel_selector::Tensor::DataTensor& tensor) { + auto logical_dims = tensor.LogicalDims(); + // LogicalDims method returns dims in reversed order + return {logical_dims.rbegin(), logical_dims.rend()}; +} + +} // namespace + +struct slice_impl : typed_primitive_impl_ocl { + using parent = typed_primitive_impl_ocl; + using parent::parent; + + enum InputIndices { + kData, + kStart, + kEnd, + kStep, + kAxes, + kInputsNum + }; + + std::unique_ptr clone() const override { + return make_unique(*this); + } + + static primitive_impl* create(const slice_node& arg) { + auto params = get_default_params( + arg); + auto op_params = get_default_optional_params< + kernel_selector::slice_optional_params>( + arg.get_program()); + const auto& inputs = arg.get_dependencies(); + const stream& stream = arg.get_program().get_stream(); + auto start_elts = extractIntegerData(inputs[InputIndices::kStart]->as(), stream); + auto end_elts = extractIntegerData(inputs[InputIndices::kEnd]->as(), stream); + auto step_elts = extractIntegerData(inputs[InputIndices::kStep]->as(), stream); + auto data_shape = extractShape(params.inputs[0]); + std::vector axes(data_shape.size()); + if (inputs.size() == InputIndices::kInputsNum) + axes = std::move(extractIntegerData(inputs[InputIndices::kAxes]->as(), stream)); + else + std::iota(axes.begin(), axes.end(), 0); + std::vector selected_start(data_shape.size(), 0); + std::vector selected_step(data_shape.size(), 1); + std::vector selected_end(data_shape); + for (int axe = 0; axe < axes.size(); axe++) { + auto transformed_axe = axes[axe] < 0 ? data_shape.size() + axes[axe] : axes[axe]; + auto start = start_elts[axe]; + auto end = end_elts[axe]; + auto dim_size = data_shape[transformed_axe]; + selected_start[transformed_axe] = std::max(std::min(start < 0 ? dim_size + start : start, dim_size - 1), 0); + selected_end[transformed_axe] = std::max(std::min(end < 0 ? dim_size + end : end, dim_size - 1), 0); + selected_step[transformed_axe] = step_elts[axe]; + } + params.start = std::move(selected_start); + params.end = std::move(selected_end); + params.step = std::move(selected_step); + auto &kernel_selector = + kernel_selector::slice_kernel_selector::Instance(); + auto best_kernels = kernel_selector.GetBestKernels(params, op_params); + + CLDNN_ERROR_BOOL(arg.id(), "Best_kernel.empty()", best_kernels.empty(), + "Cannot find a proper kernel with this arguments"); + + return new slice_impl(arg, best_kernels[0]); + } +}; + +namespace detail { + +attach_slice_impl::attach_slice_impl() { + implementation_map::add(impl_types::ocl, slice_impl::create, { + std::make_tuple(data_types::f16, format::bfyx), + std::make_tuple(data_types::f32, format::bfyx), + std::make_tuple(data_types::u8, format::bfyx), + std::make_tuple(data_types::i8, format::bfyx), + std::make_tuple(data_types::i32, format::bfyx), + std::make_tuple(data_types::i64, format::bfyx), + std::make_tuple(data_types::f16, format::bfzyx), + std::make_tuple(data_types::f32, format::bfzyx), + std::make_tuple(data_types::u8, format::bfyx), + std::make_tuple(data_types::i8, format::bfyx), + std::make_tuple(data_types::i32, format::bfzyx), + std::make_tuple(data_types::i64, format::bfzyx), + }); +} + +} // namespace detail + +} // namespace ocl +} // namespace cldnn diff --git a/inference-engine/thirdparty/clDNN/src/impls/onednn/concatenation_onednn.cpp b/inference-engine/thirdparty/clDNN/src/impls/onednn/concatenation_onednn.cpp index 2367674d762..c9e337a6466 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/onednn/concatenation_onednn.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/onednn/concatenation_onednn.cpp @@ -119,6 +119,11 @@ attach_concatenation_onednn::attach_concatenation_onednn() { std::make_tuple(data_types::f16, format::bs_fs_yx_bsv4_fsv4), std::make_tuple(data_types::u8, format::bs_fs_yx_bsv4_fsv4), std::make_tuple(data_types::i8, format::bs_fs_yx_bsv4_fsv4), + + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f16, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::u8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::i8, format::bs_fs_yx_bsv8_fsv4), }); } diff --git a/inference-engine/thirdparty/clDNN/src/impls/onednn/convolution_onednn.cpp b/inference-engine/thirdparty/clDNN/src/impls/onednn/convolution_onednn.cpp index c10ea0d5b5d..54e0328fdc9 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/onednn/convolution_onednn.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/onednn/convolution_onednn.cpp @@ -256,6 +256,11 @@ attach_convolution_onednn::attach_convolution_onednn() { std::make_tuple(data_types::u8, format::bs_fs_yx_bsv4_fsv4), std::make_tuple(data_types::i8, format::bs_fs_yx_bsv4_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f16, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::u8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::i8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::f16, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::u8, format::bs_fs_yx_bsv4_fsv2), diff --git a/inference-engine/thirdparty/clDNN/src/impls/onednn/deconvolution_onednn.cpp b/inference-engine/thirdparty/clDNN/src/impls/onednn/deconvolution_onednn.cpp index bce13ce1698..6b65c181acd 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/onednn/deconvolution_onednn.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/onednn/deconvolution_onednn.cpp @@ -199,6 +199,11 @@ attach_deconvolution_onednn::attach_deconvolution_onednn() { std::make_tuple(data_types::u8, format::bs_fs_yx_bsv4_fsv4), std::make_tuple(data_types::i8, format::bs_fs_yx_bsv4_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f16, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::u8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::i8, format::bs_fs_yx_bsv8_fsv4), + std::make_tuple(data_types::f32, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::f16, format::bs_fs_yx_bsv4_fsv2), std::make_tuple(data_types::u8, format::bs_fs_yx_bsv4_fsv2), diff --git a/inference-engine/thirdparty/clDNN/src/impls/onednn/fully_connected_onednn.cpp b/inference-engine/thirdparty/clDNN/src/impls/onednn/fully_connected_onednn.cpp index 2796070a51b..81a0fcf32a3 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/onednn/fully_connected_onednn.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/onednn/fully_connected_onednn.cpp @@ -128,20 +128,6 @@ public: static primitive_impl* create(const fully_connected_node& arg) { auto& engine = arg.get_program().get_engine(); auto desc = get_fully_connected_descriptor(arg); - auto prim = arg.get_primitive(); - - if (prim->input_size == 3) { - for (auto& fused_node : arg.get_fused_primitives()) { - auto node = fused_node.node; - if (node->is_type()) { - auto& dependency = arg.get_dependency(fused_node.dep_start_idx); - auto original_layout = dependency.get_output_layout(); - onednn::combine_bf_with_first_spatial_dim(original_layout); - dependency.set_output_layout(original_layout, false); - } - } - } - auto attr = arg.get_onednn_primitive_attributes(); dnnl::primitive_desc prim_desc{&desc->data, attr.get(), engine.get_onednn_engine(), nullptr}; diff --git a/inference-engine/thirdparty/clDNN/src/impls/onednn/utils.cpp b/inference-engine/thirdparty/clDNN/src/impls/onednn/utils.cpp index a9fd1206e43..72e2effc0e1 100644 --- a/inference-engine/thirdparty/clDNN/src/impls/onednn/utils.cpp +++ b/inference-engine/thirdparty/clDNN/src/impls/onednn/utils.cpp @@ -91,6 +91,7 @@ dnnl::memory::format_tag convert_data_format(cldnn::format fmt) { case cldnn::format::bs_fs_yx_bsv16_fsv16: return dnnl::memory::format_tag::NChw16n16c; case cldnn::format::bs_fs_yx_bsv32_fsv32: return dnnl::memory::format_tag::NChw32n32c; case cldnn::format::bs_fs_yx_bsv4_fsv4: return dnnl::memory::format_tag::ABcd4a4b; + case cldnn::format::bs_fs_yx_bsv8_fsv4: return dnnl::memory::format_tag::ABcd8a4b; case cldnn::format::bs_fs_yx_bsv4_fsv2: return dnnl::memory::format_tag::ABcd4a2b; case cldnn::format::bs_fs_yx_bsv32_fsv16: return dnnl::memory::format_tag::NChw32n16c; case cldnn::format::bs_fs_zyx_bsv16_fsv16: return dnnl::memory::format_tag::NCdhw16n16c; diff --git a/inference-engine/thirdparty/clDNN/src/include/slice_inst.h b/inference-engine/thirdparty/clDNN/src/include/slice_inst.h new file mode 100644 index 00000000000..2b3c382b2b7 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/src/include/slice_inst.h @@ -0,0 +1,38 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once +#include +#include "primitive_inst.h" +#include + +namespace cldnn { + +template <> +struct typed_program_node : public typed_program_node_base { + using parent = typed_program_node_base; + +public: + using parent::parent; + + program_node& input(std::size_t index = 0) const { return get_dependency(index); } +}; + +using slice_node = typed_program_node; + +template <> +class typed_primitive_inst : public typed_primitive_inst_base { + using parent = typed_primitive_inst_base; + +public: + static layout calc_output_layout(slice_node const& node); + static std::string to_string(slice_node const& node); + +public: + typed_primitive_inst(network& network, slice_node const& desc); +}; + +using slice_inst = typed_primitive_inst; + +} // namespace cldnn diff --git a/inference-engine/thirdparty/clDNN/src/include/to_string_utils.h b/inference-engine/thirdparty/clDNN/src/include/to_string_utils.h index 66975629a08..801895c275c 100644 --- a/inference-engine/thirdparty/clDNN/src/include/to_string_utils.h +++ b/inference-engine/thirdparty/clDNN/src/include/to_string_utils.h @@ -97,6 +97,8 @@ inline std::string fmt_to_str(format fmt) { return "bs_fs_yx_bsv4_fsv2"; case format::bs_fs_yx_bsv4_fsv4: return "bs_fs_yx_bsv4_fsv4"; + case format::bs_fs_yx_bsv8_fsv4: + return "bs_fs_yx_bsv8_fsv4"; case format::bs_fs_yx_bsv32_fsv32: return "bs_fs_yx_bsv32_fsv32"; case format::b_fs_zyx_fsv16: diff --git a/inference-engine/thirdparty/clDNN/src/kernel_selector_helper.cpp b/inference-engine/thirdparty/clDNN/src/kernel_selector_helper.cpp index ac577c70f22..540e84a81ea 100644 --- a/inference-engine/thirdparty/clDNN/src/kernel_selector_helper.cpp +++ b/inference-engine/thirdparty/clDNN/src/kernel_selector_helper.cpp @@ -136,6 +136,8 @@ kernel_selector::data_layout to_data_layout(format f) { return kernel_selector::data_layout::bs_fs_yx_bsv32_fsv16; case format::bs_fs_yx_bsv4_fsv4: return kernel_selector::data_layout::bs_fs_yx_bsv4_fsv4; + case format::bs_fs_yx_bsv8_fsv4: + return kernel_selector::data_layout::bs_fs_yx_bsv8_fsv4; case format::bs_fs_yx_bsv4_fsv2: return kernel_selector::data_layout::bs_fs_yx_bsv4_fsv2; case format::bs_fs_yx_bsv32_fsv32: @@ -193,6 +195,8 @@ cldnn::format from_data_layout(kernel_selector::data_layout l) { return cldnn::format::bs_fs_yx_bsv4_fsv2; case kernel_selector::data_layout::bs_fs_yx_bsv4_fsv4: return cldnn::format::bs_fs_yx_bsv4_fsv4; + case kernel_selector::data_layout::bs_fs_yx_bsv8_fsv4: + return cldnn::format::bs_fs_yx_bsv8_fsv4; case kernel_selector::data_layout::bs_fs_yx_bsv32_fsv32: return cldnn::format::bs_fs_yx_bsv32_fsv32; case kernel_selector::data_layout::nv12: diff --git a/inference-engine/thirdparty/clDNN/src/layout_optimizer.cpp b/inference-engine/thirdparty/clDNN/src/layout_optimizer.cpp index f2c3ae9c84d..1646ca99a89 100644 --- a/inference-engine/thirdparty/clDNN/src/layout_optimizer.cpp +++ b/inference-engine/thirdparty/clDNN/src/layout_optimizer.cpp @@ -284,10 +284,11 @@ bool layout_optimizer::can_fuse_reorder(program_node& prev, program_node& next, return true; if (next.is_type() && - (fmt_prev == format::b_fs_yx_fsv4 || fmt_prev == format::bs_fs_yx_bsv4_fsv4) && + (fmt_prev == format::b_fs_yx_fsv4 || fmt_prev == format::bs_fs_yx_bsv4_fsv4 || fmt_prev == format::bs_fs_yx_bsv8_fsv4) && ((fmt_next == format::b_fs_yx_fsv32 && (prev_output_layout.size.feature[0] == 3 || prev_output_layout.size.feature[0] == 4)) || (fmt_next == format::bs_fs_yx_bsv32_fsv32 && (prev_output_layout.size.feature[0] == 3 || prev_output_layout.size.feature[0] == 4)) || (fmt_next == format::bs_fs_yx_bsv4_fsv4 && (prev_output_layout.size.feature[0] == 3 || prev_output_layout.size.feature[0] == 4)) || + (fmt_next == format::bs_fs_yx_bsv8_fsv4 && (prev_output_layout.size.feature[0] == 3 || prev_output_layout.size.feature[0] == 4)) || (fmt_next == format::b_fs_yx_fsv16 && next_output_layout.size.feature[0] >= 16 && (prev_output_layout.size.feature[0] == 3 || (prev_output_layout.size.feature[0] == 4 && (prev_dt == data_types::u8 || prev_dt == data_types::i8)))))) return true; @@ -1269,6 +1270,7 @@ impl_types layout_optimizer::get_preferred_impl_type(program_node& node, format format::bs_fs_yx_bsv32_fsv16, format::bs_fs_yx_bsv32_fsv32, format::bs_fs_yx_bsv4_fsv4, + format::bs_fs_yx_bsv8_fsv4, format::bs_fs_yx_bsv4_fsv2, format::bs_fs_zyx_bsv4_fsv4, format::bs_fs_zyx_bsv4_fsv2, @@ -1281,6 +1283,23 @@ impl_types layout_optimizer::get_preferred_impl_type(program_node& node, format impl_candidate = impl_types::ocl; } + // [WA] to avoid an onednn kernel issue of multiple sum post-ops + if (!node.get_fused_primitives().empty()) { + size_t sum_post_op_cnt = 0; + for (auto& fused_op : node.get_fused_primitives()) { + if (fused_op.node->is_type() && node.get_dependencies().size() > fused_op.dep_start_idx && fused_op.deps.size() == 1) { + auto& eltw_in = node.get_dependency(fused_op.dep_start_idx); + if (program_helpers::are_layouts_identical_for_onednn_sum_post_op(eltw_in.get_output_layout(), node.get_output_layout()) && + fused_op.node->as().get_primitive()->needs_onednn_sum_post_op(eltw_in.get_output_layout())) { + if (sum_post_op_cnt > 0) + return impl_types::ocl; + + sum_post_op_cnt += 1; + } + } + } + } + if (node.is_type()) { // oneDNN doesn't have good support for groups with fsv16 fmt auto& conv = node.as(); @@ -1320,17 +1339,27 @@ impl_types layout_optimizer::get_preferred_impl_type(program_node& node, format impl_candidate = impl_types::ocl; } + size_t eltw_dep = 0; for (auto& fo : node.get_fused_primitives()) { if (fo.node->is_type()) { auto in_layout = node.get_dependency(fo.dep_start_idx).get_output_layout(); auto out_layout = node.get_output_layout(); auto in_dt = in_layout.data_type; auto out_dt = out_layout.data_type; - if ((out_layout.count() == in_layout.count()) && - (data_type_traits::is_floating_point(in_dt) || data_type_traits::is_floating_point(out_dt)) && in_dt != out_dt && - fo.node->as().get_primitive()->needs_onednn_sum_post_op(in_layout)) { - impl_candidate = impl_types::ocl; - break; + if (fo.node->as().get_primitive()->needs_onednn_sum_post_op(in_layout)) { + if ((out_layout.count() == in_layout.count()) && + (data_type_traits::is_floating_point(in_dt) || data_type_traits::is_floating_point(out_dt)) && in_dt != out_dt) { + impl_candidate = impl_types::ocl; + break; + } + if (in_layout.size == out_layout.size && in_layout.format == out_layout.format && in_layout.data_padding == out_layout.data_padding && + data_type_traits::size_of(in_dt) == data_type_traits::size_of(out_dt)) { + if (eltw_dep > 0) { + impl_candidate = impl_types::ocl; + break; + } + eltw_dep = fo.dep_start_idx; + } } } else if (fo.node->is_type()) { // Some activations aren't implemented in oneDNN @@ -1453,7 +1482,7 @@ format layout_optimizer::get_preferred_format(program_node& node) { if (data_type_traits::is_floating_point(conv.get_output_layout().data_type) || ws.spatial[0] != 7 || conv.get_primitive()->groups > 1) expected = format::bfyx; else - expected = format::bs_fs_yx_bsv4_fsv4; + expected = format::bs_fs_yx_bsv8_fsv4; auto conv_output_layout = conv.get_output_layout(); auto weights_layout = conv.weights(0).get_output_layout(); diff --git a/inference-engine/thirdparty/clDNN/src/network.cpp b/inference-engine/thirdparty/clDNN/src/network.cpp index 98b3a3160a3..febc8d61bce 100644 --- a/inference-engine/thirdparty/clDNN/src/network.cpp +++ b/inference-engine/thirdparty/clDNN/src/network.cpp @@ -514,15 +514,17 @@ void network::allocate_primitives() { can_reuse_eltwise_mem = true; } - if (_primitives.find(eltw_in.id()) != _primitives.end() && _primitives.find(node->id()) != _primitives.end()) { - auto& eltw_inst = _primitives.at(eltw_in.id()); - auto& prim_inst = _primitives.at(node->id()); - auto eltw_mem_type = eltw_inst->output_memory().get_allocation_type(); - auto prim_mem_type = prim_inst->output_memory().get_allocation_type(); + if (!can_reuse_eltwise_mem) { + if (_primitives.find(eltw_in.id()) != _primitives.end() && _primitives.find(node->id()) != _primitives.end()) { + auto& eltw_inst = _primitives.at(eltw_in.id()); + auto& prim_inst = _primitives.at(node->id()); + auto eltw_mem_type = eltw_inst->output_memory().get_allocation_type(); + auto prim_mem_type = prim_inst->output_memory().get_allocation_type(); - // Keep lockable memory type for `prim_inst` output if needed - if (eltw_mem_type != prim_mem_type && eltw_mem_type != allocation_type::cl_mem && eltw_mem_type != allocation_type::usm_host) - can_reuse_eltwise_mem = false; + // Keep lockable memory type for `prim_inst` output if needed + if (eltw_mem_type != prim_mem_type && eltw_mem_type != allocation_type::cl_mem && eltw_mem_type != allocation_type::usm_host) + can_reuse_eltwise_mem = false; + } } if (fused_op.node->as().get_primitive()->needs_onednn_sum_post_op(eltw_in_layout) && !can_reuse_eltwise_mem) { diff --git a/inference-engine/thirdparty/clDNN/src/program.cpp b/inference-engine/thirdparty/clDNN/src/program.cpp index 9d60731d1e2..ebdc3f3920e 100644 --- a/inference-engine/thirdparty/clDNN/src/program.cpp +++ b/inference-engine/thirdparty/clDNN/src/program.cpp @@ -741,10 +741,10 @@ program_node& program::get_or_create(std::shared_ptr prim) { } void program::add_intermediate(program_node& node, - program_node& next, - size_t prev_idx, - bool connect_int_node_with_old_dep, - bool move_usrs_of_prev_to_node) { + program_node& next, + size_t prev_idx, + bool connect_int_node_with_old_dep, + bool move_usrs_of_prev_to_node) { if (connect_int_node_with_old_dep && !node.dependencies.empty()) throw std::invalid_argument( "Node which is about to be added in between two other nodes should not have any existing dependencies"); @@ -1112,8 +1112,8 @@ void program::remove_nodes(std::vector& to_remove) { // TODO: break this function into number of smaller ones + add per-primitive fields (possibly use // primitive_inst::to_string?) void program::dump_program(const char* stage, - bool with_full_info, - std::function const& filter) const { + bool with_full_info, + std::function const& filter) const { std::string path = get_dir_path(options); if (path.empty() || !with_full_info) { return; @@ -1230,7 +1230,7 @@ void program::save_pass_info(std::string pass_name) { } void program::add_optimized_primitive_info(primitive_id optimized_primitive_id, - std::vector replaced_with_ids) { + std::vector replaced_with_ids) { for (auto& e : optimized) { auto it = std::find_if(e.second.begin(), e.second.end(), [&optimized_primitive_id](const primitive_id& id) { return optimized_primitive_id == id; diff --git a/inference-engine/thirdparty/clDNN/src/program_helpers.cpp b/inference-engine/thirdparty/clDNN/src/program_helpers.cpp index 09e3fbf6c99..bddd611cf8a 100644 --- a/inference-engine/thirdparty/clDNN/src/program_helpers.cpp +++ b/inference-engine/thirdparty/clDNN/src/program_helpers.cpp @@ -139,30 +139,25 @@ std::pair program_helpers::are_layouts_identical(layout const& l1, l return {false, false}; if (l1.get_linear_size() != l2.get_linear_size()) return {false, false}; - if ((l1.format == format::b_fs_yx_fsv4 && l2.format != format::b_fs_yx_fsv4) || - (l2.format == format::b_fs_yx_fsv4 && l1.format != format::b_fs_yx_fsv4) || - (l1.format == format::fs_b_yx_fsv32 && l2.format != format::fs_b_yx_fsv32) || - (l2.format == format::fs_b_yx_fsv32 && l1.format != format::fs_b_yx_fsv32) || - (l1.format == format::b_fs_yx_fsv16 && l2.format != format::b_fs_yx_fsv16) || - (l2.format == format::b_fs_yx_fsv16 && l1.format != format::b_fs_yx_fsv16) || - (l1.format == format::b_fs_yx_fsv32 && l2.format != format::b_fs_yx_fsv32) || - (l2.format == format::b_fs_yx_fsv32 && l1.format != format::b_fs_yx_fsv32) || - (l1.format == format::b_fs_zyx_fsv32 && l2.format != format::b_fs_zyx_fsv32) || - (l2.format == format::b_fs_zyx_fsv32 && l1.format != format::b_fs_zyx_fsv32) || - (l1.format == format::b_fs_zyx_fsv16 && l2.format != format::b_fs_zyx_fsv16) || - (l2.format == format::b_fs_zyx_fsv16 && l1.format != format::b_fs_zyx_fsv16) || - (l1.format == format::bs_fs_yx_bsv4_fsv4 && l2.format != format::bs_fs_yx_bsv4_fsv4) || - (l2.format == format::bs_fs_yx_bsv4_fsv4 && l1.format != format::bs_fs_yx_bsv4_fsv4) || - (l1.format == format::bs_fs_yx_bsv4_fsv2 && l2.format != format::bs_fs_yx_bsv4_fsv2) || - (l2.format == format::bs_fs_yx_bsv4_fsv2 && l1.format != format::bs_fs_yx_bsv4_fsv2) || - (l1.format == format::bs_fs_yx_bsv32_fsv16 && l2.format != format::bs_fs_yx_bsv32_fsv16) || - (l2.format == format::bs_fs_yx_bsv32_fsv16 && l1.format != format::bs_fs_yx_bsv32_fsv16) || - (l1.format == format::bs_fs_yx_bsv32_fsv32 && l2.format != format::bs_fs_yx_bsv32_fsv32) || - (l2.format == format::bs_fs_yx_bsv32_fsv32 && l1.format != format::bs_fs_yx_bsv32_fsv32) || - (l1.format == format::bs_fs_yx_bsv16_fsv16 && l2.format != format::bs_fs_yx_bsv16_fsv16) || - (l2.format == format::bs_fs_yx_bsv16_fsv16 && l1.format != format::bs_fs_yx_bsv16_fsv16) || - (l1.format == format::bs_fs_zyx_bsv16_fsv16 && l2.format != format::bs_fs_zyx_bsv16_fsv16) || - (l2.format == format::bs_fs_zyx_bsv16_fsv16 && l1.format != format::bs_fs_zyx_bsv16_fsv16)) + + auto check_format = [&l1, &l2](cldnn::format format) { + return (l1.format == format && l2.format != format) || + (l2.format == format && l1.format != format); + }; + + if (check_format(format::b_fs_yx_fsv4) || + check_format(format::fs_b_yx_fsv32) || + check_format(format::b_fs_yx_fsv16) || + check_format(format::b_fs_yx_fsv32) || + check_format(format::b_fs_zyx_fsv32) || + check_format(format::b_fs_zyx_fsv16) || + check_format(format::bs_fs_yx_bsv4_fsv4) || + check_format(format::bs_fs_yx_bsv8_fsv4) || + check_format(format::bs_fs_yx_bsv4_fsv2) || + check_format(format::bs_fs_yx_bsv32_fsv16) || + check_format(format::bs_fs_yx_bsv32_fsv32) || + check_format(format::bs_fs_yx_bsv16_fsv16) || + check_format(format::bs_fs_zyx_bsv16_fsv16)) return {false, false}; auto l1_pitch = l1.get_pitches(); diff --git a/inference-engine/thirdparty/clDNN/src/program_node.cpp b/inference-engine/thirdparty/clDNN/src/program_node.cpp index 30aece05a5b..acc2b143bfd 100644 --- a/inference-engine/thirdparty/clDNN/src/program_node.cpp +++ b/inference-engine/thirdparty/clDNN/src/program_node.cpp @@ -428,7 +428,8 @@ dnnl::post_ops program_node::try_optimize_post_ops(dnnl::post_ops& p_ops, const // Ignore optimized operations for "previous" operation in our operation pair while (type_is_any_optimized(prev_type) && cur_post_op_idx < post_ops_size - 1) { prev_post_op_idx++; - cur_post_op_idx++; + if (prev_post_op_idx == cur_post_op_idx) + cur_post_op_idx++; prev_type = cur_post_ops[prev_post_op_idx].op_type; cur_type = cur_post_ops[cur_post_op_idx].op_type; } diff --git a/inference-engine/thirdparty/clDNN/src/slice.cpp b/inference-engine/thirdparty/clDNN/src/slice.cpp new file mode 100644 index 00000000000..fc3856c82e0 --- /dev/null +++ b/inference-engine/thirdparty/clDNN/src/slice.cpp @@ -0,0 +1,40 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include "primitive_type_base.h" +#include +#include + +namespace cldnn { + +primitive_type_id slice::type_id() { + static primitive_type_base instance; + return &instance; +} + +slice_inst::typed_primitive_inst(network& network, slice_node const& node) + : parent(network, node) {} + +layout slice_inst::calc_output_layout(slice_node const& node) { + auto primitive = node.get_primitive(); + auto input_layout = node.input(0).get_output_layout(); + return {input_layout.data_type, input_layout.format, primitive->output_shape}; +} + +std::string slice_inst::to_string(slice_node const& node) { + auto node_info = node.desc_to_json(); + json_composite slice_info; + slice_info.add("input id", node.input().id()); + slice_info.add("begin_param id", node.get_dependency(1).id()); + slice_info.add("end_param id", node.get_dependency(2).id()); + slice_info.add("step_param id", node.get_dependency(3).id()); + slice_info.add("axis_param id", node.get_dependency(4).id()); + node_info->add("slice info", slice_info); + std::stringstream primitive_description; + node_info->dump(primitive_description); + return primitive_description.str(); +} + +} // namespace cldnn diff --git a/inference-engine/thirdparty/clDNN/tests/test_cases/convert_color_gpu_test.cpp b/inference-engine/thirdparty/clDNN/tests/test_cases/convert_color_gpu_test.cpp index 7bb8947b1b8..f207235b761 100644 --- a/inference-engine/thirdparty/clDNN/tests/test_cases/convert_color_gpu_test.cpp +++ b/inference-engine/thirdparty/clDNN/tests/test_cases/convert_color_gpu_test.cpp @@ -16,15 +16,15 @@ using namespace cldnn; using namespace ::tests; template -void createReferenceData(const T* arg_y, const T* arg_uv, U* out_ptr, - size_t batch_size, size_t image_h, size_t image_w, - size_t stride_y, size_t stride_uv, bool to_rgb) { - for (int batch = 0; batch < batch_size; batch++) { +void createReferenceDataNV12(const T* arg_y, const T* arg_uv, U* out_ptr, + size_t batch_size, size_t image_h, size_t image_w, + size_t stride_y, size_t stride_uv, bool to_rgb) { + for (size_t batch = 0; batch < batch_size; ++batch) { U* out = out_ptr + batch * image_w * image_h * 3; auto y_ptr = arg_y + batch * stride_y; auto uv_ptr = arg_uv + batch * stride_uv; - for (int h = 0; h < image_h; h++) { - for (int w = 0; w < image_w; w++) { + for (size_t h = 0; h < image_h; ++h) { + for (size_t w = 0; w < image_w; ++w) { auto y_index = h * image_w + w; auto y_val = static_cast(y_ptr[y_index]); auto uv_index = (h / 2) * image_w + (w / 2) * 2; @@ -87,8 +87,8 @@ TEST(convert_color, nv12_to_rgb_two_planes_buffer_fp32) { auto outputs = network.execute(); std::vector ref_res(width * height * 3); - createReferenceData(input_y_data.data(), input_uv_data.data(), ref_res.data(), - 1, height, width, height * width, height * width / 2, true); + createReferenceDataNV12(input_y_data.data(), input_uv_data.data(), ref_res.data(), + 1, height, width, height * width, height * width / 2, true); auto output = outputs.at("convert_color").get_memory(); cldnn::mem_lock output_ptr(output, get_test_stream()); @@ -126,8 +126,8 @@ TEST(convert_color, nv12_to_bgr_two_planes_buffer_fp32) { auto outputs = network.execute(); std::vector ref_res(width * height * 3); - createReferenceData(input_y_data.data(), input_uv_data.data(), ref_res.data(), - 1, height, width, height * width, height * width / 2, false); + createReferenceDataNV12(input_y_data.data(), input_uv_data.data(), ref_res.data(), + 1, height, width, height * width, height * width / 2, false); auto output = outputs.at("convert_color").get_memory(); cldnn::mem_lock output_ptr(output, get_test_stream()); @@ -166,8 +166,8 @@ TEST(convert_color, nv12_to_rgb_two_planes_buffer_u8) { auto outputs = network.execute(); std::vector ref_res(width * height * 3); - createReferenceData(input_y_data.data(), input_uv_data.data(), ref_res.data(), - 1, height, width, height * width, height * width / 2, true); + createReferenceDataNV12(input_y_data.data(), input_uv_data.data(), ref_res.data(), + 1, height, width, height * width, height * width / 2, true); auto output = outputs.at("convert_color").get_memory(); cldnn::mem_lock output_ptr(output, get_test_stream()); @@ -206,8 +206,8 @@ TEST(convert_color, nv12_to_rgb_two_planes_buffer_fp16) { auto outputs = network.execute(); std::vector ref_res(width * height * 3); - createReferenceData(input_y_data.data(), input_uv_data.data(), ref_res.data(), - 1, height, width, height * width, height * width / 2, true); + createReferenceDataNV12(input_y_data.data(), input_uv_data.data(), ref_res.data(), + 1, height, width, height * width, height * width / 2, true); auto output = outputs.at("convert_color").get_memory(); cldnn::mem_lock output_ptr(output, get_test_stream()); @@ -243,8 +243,8 @@ TEST(convert_color, nv12_to_rgb_single_plane_buffer_fp32) { auto outputs = network.execute(); std::vector ref_res(width * height * 3); - createReferenceData(input_data.data(), input_data.data() + height * width, ref_res.data(), - 1, height, width, input_height * width, input_height * width, true); + createReferenceDataNV12(input_data.data(), input_data.data() + height * width, ref_res.data(), + 1, height, width, input_height * width, input_height * width, true); auto output = outputs.at("convert_color").get_memory(); cldnn::mem_lock output_ptr(output, get_test_stream()); @@ -279,8 +279,8 @@ TEST(convert_color, nv12_to_rgb_single_plane_buffer_u8) { auto outputs = network.execute(); std::vector ref_res(width * height * 3); - createReferenceData(input_data.data(), input_data.data() + height * width, ref_res.data(), - 1, height, width, input_height * width, input_height * width, true); + createReferenceDataNV12(input_data.data(), input_data.data() + height * width, ref_res.data(), + 1, height, width, input_height * width, input_height * width, true); auto output = outputs.at("convert_color").get_memory(); cldnn::mem_lock output_ptr(output, get_test_stream()); @@ -356,8 +356,8 @@ TEST(convert_color, nv12_to_rgb_two_planes_surface_u8) { auto outputs = network.execute(); std::vector reference_results(width * height * 3); - createReferenceData(data.data(), data.data() + height * width, reference_results.data(), - 1, height, width, height * width, height * width / 2, true); + createReferenceDataNV12(data.data(), data.data() + height * width, reference_results.data(), + 1, height, width, height * width, height * width / 2, true); auto output_prim = outputs.begin()->second.get_memory(); cldnn::mem_lock output_ptr(output_prim, get_test_stream()); @@ -419,8 +419,8 @@ TEST(convert_color, nv12_to_rgb_single_plane_surface_u8) { auto outputs = network.execute(); std::vector reference_results(width * height * 3); - createReferenceData(input_data.data(), input_data.data() + height * width, reference_results.data(), - 1, height, width, input_height * width, input_height * width, true); + createReferenceDataNV12(input_data.data(), input_data.data() + height * width, reference_results.data(), + 1, height, width, input_height * width, input_height * width, true); auto output_prim = outputs.begin()->second.get_memory(); cldnn::mem_lock output_ptr(output_prim, get_test_stream()); @@ -429,3 +429,185 @@ TEST(convert_color, nv12_to_rgb_single_plane_surface_u8) { } checkStatus(clReleaseMemObject(nv12_image), "clReleaseMemObject"); } + +template +std::tuple yuv_pixel_to_rgb(float y_val, float u_val, float v_val) { + auto c = y_val - 16.f; + auto d = u_val - 128.f; + auto e = v_val - 128.f; + auto clip = [](float a) -> T { + if (std::is_integral()) { + return static_cast(std::min(std::max(std::round(a), 0.f), 255.f)); + } else { + return static_cast(std::min(std::max(a, 0.f), 255.f)); + } + }; + auto b = clip(1.164f * c + 2.018f * d); + auto g = clip(1.164f * c - 0.391f * d - 0.813f * e); + auto r = clip(1.164f * c + 1.596f * e); + return std::tuple{r, g, b}; +} + +template +void createReferenceDataI420(const T* arg_y, const T* arg_u, const T* arg_v, U* out_ptr, + size_t batch_size, size_t image_h, size_t image_w, + size_t stride_y, size_t stride_uv, bool rgb_color_format) { + for (size_t batch = 0; batch < batch_size; ++batch) { + U* out = out_ptr + batch * image_w * image_h * 3; + auto y_ptr = arg_y + batch * stride_y; + auto u_ptr = arg_u + batch * stride_uv; + auto v_ptr = arg_v + batch * stride_uv; + for (size_t h = 0; h < image_h; ++h) { + for (size_t w = 0; w < image_w; ++w) { + auto y_index = h * image_w + w; + auto y_val = static_cast(y_ptr[y_index]); + auto uv_index = (h / 2) * (image_w / 2) + (w / 2); + auto u_val = static_cast(u_ptr[uv_index]); + auto v_val = static_cast(v_ptr[uv_index]); + T r, g, b; + std::tie(r, g, b) = yuv_pixel_to_rgb(y_val, u_val, v_val); + if (rgb_color_format) { + out[y_index * 3] = r; + out[y_index * 3 + 1] = g; + out[y_index * 3 + 2] = b; + } else { + out[y_index * 3] = b; + out[y_index * 3 + 1] = g; + out[y_index * 3 + 2] = r; + } + } + } + } +} + +TEST(convert_color, i420_to_rgb_three_planes_buffer_fp32) { + auto& engine = get_test_engine(); + int width = 224; + int height = 448; + + auto input_y = engine.allocate_memory({ data_types::f32, format::byxf, { 1, 1, width, height } }); + auto input_u = engine.allocate_memory({ data_types::f32, format::byxf, { 1, 1, width / 2 , height / 2 } }); + auto input_v = engine.allocate_memory({ data_types::f32, format::byxf, { 1, 1, width / 2 , height / 2 } }); + + std::vector input_y_data = generate_random_1d(width * height, 0, 255); + std::vector input_u_data = generate_random_1d(width * height / 4, 0, 255); + std::vector input_v_data = generate_random_1d(width * height / 4, 0, 255); + + set_values(input_y, input_y_data); + set_values(input_u, input_u_data); + set_values(input_v, input_v_data); + + layout output_layout(data_types::f32, cldnn::format::byxf, { 1, 3, width, height }); + + topology topology; + topology.add(input_layout("input_y", input_y->get_layout())); + topology.add(input_layout("input_u", input_u->get_layout())); + topology.add(input_layout("input_v", input_v->get_layout())); + topology.add(convert_color("convert_color", { "input_y", "input_u", "input_v" }, cldnn::convert_color::color_format::I420, cldnn::convert_color::color_format::RGB, + cldnn::convert_color::memory_type::buffer, output_layout)); + + network network(engine, topology); + network.set_input_data("input_y", input_y); + network.set_input_data("input_u", input_u); + network.set_input_data("input_v", input_v); + + auto outputs = network.execute(); + + std::vector ref_res(width * height * 3); + createReferenceDataI420(input_y_data.data(), input_u_data.data(), input_v_data.data(), ref_res.data(), + 1, height, width, height * width, height * width / 2, true); + auto output = outputs.at("convert_color").get_memory(); + cldnn::mem_lock output_ptr(output, get_test_stream()); + + for (size_t i = 0; i < ref_res.size(); ++i) { + EXPECT_NEAR(ref_res[i], output_ptr[i], 1.001f); + } +} + +TEST(convert_color, i420_to_rgb_three_planes_surface_u8) { + int width = 224; + int height = 448; + + auto ocl_instance = std::make_shared(); + device_query query(engine_types::ocl, runtime_types::ocl, static_cast(ocl_instance->_context.get())); + auto devices = query.get_available_devices(); + + auto engine_config = cldnn::engine_configuration(); + auto engine = engine::create(engine_types::ocl, runtime_types::ocl, devices.begin()->second, engine_config); + + if (!engine->get_device_info().supports_image) { + GTEST_SKIP() << "Device doesn't support images"; + } + + int data_size = width * (height + height / 2); + std::vector data = generate_random_1d(data_size, 0, 255); + + cl_int err; + cl_image_format image_format; + image_format.image_channel_order = CL_R; + image_format.image_channel_data_type = CL_UNORM_INT8; + cl_image_desc image_desc = { CL_MEM_OBJECT_IMAGE2D, (size_t)width, (size_t)height, 0, + 0, 0, 0, 0, 0, { nullptr } }; + + cl_mem i420_image_plane_y = clCreateImage(ocl_instance->_context.get(), CL_MEM_READ_WRITE, &image_format, &image_desc, nullptr, &err); + checkStatus(err, "Creating i420 image plane_y failed"); + + image_desc.image_width = width / 2; + image_desc.image_height = height / 2; + + cl_mem i420_image_plane_u = clCreateImage(ocl_instance->_context.get(), CL_MEM_READ_WRITE, &image_format, &image_desc, nullptr, &err); + checkStatus(err, "Creating i420 image plane_u failed"); + + cl_mem i420_image_plane_v = clCreateImage(ocl_instance->_context.get(), CL_MEM_READ_WRITE, &image_format, &image_desc, nullptr, &err); + checkStatus(err, "Creating i420 image plane_v failed"); + + size_t origin[3] = { 0, 0, 0 }; + size_t y_region[3] = { (size_t)width, (size_t)height, 1 }; + size_t uv_region[3] = { (size_t)width / 2, (size_t)height / 2, 1 }; + + err = clEnqueueWriteImage(ocl_instance->_queue.get(), i420_image_plane_y, true, origin, y_region, 0, 0, &data[0], 0, nullptr, nullptr); + checkStatus(err, "Writing i420 image plane_y failed"); + + err = clEnqueueWriteImage(ocl_instance->_queue.get(), i420_image_plane_u, true, origin, uv_region, 0, 0, &data[width * height], 0, nullptr, nullptr); + checkStatus(err, "Writing i420 image plane_u failed"); + + err = clEnqueueWriteImage(ocl_instance->_queue.get(), i420_image_plane_v, true, origin, uv_region, 0, 0, &data[width * (height + height / 4)], 0, nullptr, nullptr); + checkStatus(err, "Writing i420 image plane_v failed"); + + auto input = input_layout("input", { data_types::u8, format::nv12, { 1, 1, width, height } }); + auto input2 = input_layout("input2", { data_types::u8, format::nv12, { 1, 1, width / 2, height / 2 } }); + auto input3 = input_layout("input3", { data_types::u8, format::nv12, { 1, 1, width / 2, height / 2 } }); + auto output_format = cldnn::format::byxf; + layout output_layout(data_types::f32, output_format, { 1, 3, width, height }); + + auto input_memory = engine->share_image(input.layout, i420_image_plane_y); + auto input_memory2 = engine->share_image(input2.layout, i420_image_plane_u); + auto input_memory3 = engine->share_image(input3.layout, i420_image_plane_v); + + topology topology; + topology.add(input); + topology.add(input2); + topology.add(input3); + topology.add(convert_color("convert_color", { "input", "input2", "input3" }, cldnn::convert_color::color_format::I420, cldnn::convert_color::color_format::RGB, + cldnn::convert_color::memory_type::image, output_layout)); + + network network(*engine, topology); + network.set_input_data("input", input_memory); + network.set_input_data("input2", input_memory2); + network.set_input_data("input3", input_memory3); + + auto outputs = network.execute(); + + std::vector reference_results(width * height * 3); + createReferenceDataI420(data.data(), data.data() + height * width, data.data() + width * (height + height / 4), reference_results.data(), + 1, height, width, height * width, height * width / 2, true); + + auto output_prim = outputs.begin()->second.get_memory(); + cldnn::mem_lock output_ptr(output_prim, get_test_stream()); + for (auto i = 0; i < reference_results.size(); i++) { + EXPECT_NEAR(reference_results[i], output_ptr[i], 1.001f); + } + checkStatus(clReleaseMemObject(i420_image_plane_y), "clReleaseMemObject"); + checkStatus(clReleaseMemObject(i420_image_plane_u), "clReleaseMemObject"); + checkStatus(clReleaseMemObject(i420_image_plane_v), "clReleaseMemObject"); +} diff --git a/inference-engine/thirdparty/clDNN/tests/test_cases/convolution_gpu_test.cpp b/inference-engine/thirdparty/clDNN/tests/test_cases/convolution_gpu_test.cpp index 607164c7799..6c224fd0e67 100644 --- a/inference-engine/thirdparty/clDNN/tests/test_cases/convolution_gpu_test.cpp +++ b/inference-engine/thirdparty/clDNN/tests/test_cases/convolution_gpu_test.cpp @@ -344,13 +344,13 @@ TEST(deformable_convolution_f32_fw_gpu, basic_deformable_convolution_def_group1_ data("biases", biases), convolution( "conv", - {"input", "trans"}, + { "input", "trans" }, { "weights" }, { "biases" }, 1, 1, { 1, 1, 1, 1 }, - tensor{{ 0, 0, 1, 1 }, 0}, + tensor{ { 0, 0, 1, 1 }, 0 }, { 1, 1, 1, 1 }, { 1, 4, 4, 4 }) ); @@ -475,13 +475,13 @@ TEST(deformable_convolution_f32_fw_gpu, basic_deformable_convolution_def_group1) data("biases", biases), convolution( "conv", - {"input", "trans"}, + { "input", "trans" }, { "weights" }, { "biases" }, 1, 1, { 1, 1, 1, 1 }, - tensor{{ 0, 0, 2, 2 }, 0}, + tensor{ { 0, 0, 2, 2 }, 0 }, { 1, 1, 2, 2 }, { 1, 4, 4, 4 }) ); @@ -638,13 +638,13 @@ TEST(deformable_convolution_f32_fw_gpu, basic_deformable_convolution) { data("biases", biases), convolution( "conv", - {"input", "trans"}, + { "input", "trans" }, { "weights" }, { "biases" }, 1, 2, { 1, 1, 1, 1 }, - tensor{{ 0, 0, 2, 2 }, 0}, + tensor{ { 0, 0, 2, 2 }, 0 }, { 1, 1, 2, 2 }, { 1, 4, 4, 4 }) ); @@ -698,8 +698,8 @@ TEST(convolution_f32_fw_gpu, basic_convolution_no_bias) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32,format::yxfb,{ 1, 1, 5, 4 } }); - auto weights = engine.allocate_memory({ data_types::f32,format::bfyx,{ 1, 1, 3, 2 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 5, 4 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 3, 2 } }); set_values(input, { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 2.0f, 2.0f, 3.0f, 4.0f, 6.0f, 3.0f, 3.0f, 3.0f, 5.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }); set_values(weights, { 1.0f, 2.0f, 1.0f, 2.0f, 1.0f, 2.0f }); @@ -710,7 +710,7 @@ TEST(convolution_f32_fw_gpu, basic_convolution_no_bias) { topology topology( input_layout("input", input->get_layout()), data("weights", weights), - convolution("conv", "input", { "weights" }, { 1,1,1,2 })); + convolution("conv", "input", { "weights" }, { 1, 1, 1, 2 })); network network(engine, topology); network.set_input_data("input", input); @@ -769,8 +769,8 @@ TEST(convolution_f32_fw_gpu, basic_convolution_int8_no_bias) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32,format::bfyx,{ 1, 1, 5, 4 } }); - auto weights = engine.allocate_memory({ data_types::i8,format::bfyx,{ 1, 1, 3, 2 } }); + auto input = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 5, 4 } }); + auto weights = engine.allocate_memory({ data_types::i8, format::bfyx, { 1, 1, 3, 2 } }); set_values(input, { 1.1f, 2.4f, 3.5f, 4.5f, 5.8f, 2.9f, 2.3f, 3.5f, 4.4f, 6.6f, @@ -784,10 +784,10 @@ TEST(convolution_f32_fw_gpu, basic_convolution_int8_no_bias) { topology topology( input_layout("input", input->get_layout()), - reorder("to_int","input", { data_types::i8,format::bfyx,{ 1, 1, 5, 4 } }), + reorder("to_int","input", { data_types::i8, format::bfyx, { 1, 1, 5, 4 } }), data("weights", weights), - convolution("conv", "to_int", { "weights" }, { 1,1,1,2 }), - reorder("output", "conv", { data_types::f32,format::bfyx,{ 1, 1, 3, 2 } })); + convolution("conv", "to_int", { "weights" }, { 1, 1, 1, 2 }), + reorder("output", "conv", { data_types::f32, format::bfyx, { 1, 1, 3, 2 } })); network network(engine, topology); network.set_input_data("input", input); @@ -839,7 +839,7 @@ TEST(convolution_f32_fw_gpu, basic_convolution3D_no_bias) { topology topology( input_layout("input", input->get_layout()), data("weights", weights), - convolution("conv", "input", { "weights" }, { 1,1,1,2 })); + convolution("conv", "input", { "weights" }, { 1, 1, 1, 2 })); network network(engine, topology); network.set_input_data("input", input); @@ -921,9 +921,9 @@ TEST(convolution_f32_fw_gpu, basic_convolution3D) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::bfzyx,{ 1, 1, 4, 4, 4 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::bfzyx,{ 1, 1, 2, 2, 2 } }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 1, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::bfzyx, { 1, 1, 4, 4, 4 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::bfzyx, { 1, 1, 2, 2, 2 } }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1, 1 } }); set_values(input, { 1.0f, 0.0f, 1.0f, 0.0f, @@ -1009,10 +1009,10 @@ TEST(convolution_f32_fw_gpu, basic_convolution3D) { } } -TEST(convolution_f32_fw_gpu, basic_convolution3D_split2) { +TEST(convolution_f32_fw_gpu, basic_convolution3D_group2) { // data is similar as in basic_convolution3D auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::bfzyx,{ 1, 2, 4, 4, 4 } }); + auto input = engine.allocate_memory({ data_types::f32, format::bfzyx, { 1, 2, 4, 4, 4 } }); auto weights_1 = engine.allocate_memory({ data_types::f32, format::goizyx, tensor(cldnn::group(2), cldnn::batch(1), cldnn::feature(1), cldnn::spatial(2, 2, 2))}); auto biases_1 = engine.allocate_memory({ data_types::f32, format::bfyx, tensor(feature(2)) }); @@ -1078,7 +1078,7 @@ TEST(convolution_f32_fw_gpu, basic_convolution3D_split2) { }, { { 3.0f, 4.0f, 6.0f }, - { 6.0f, 5.0f, 10.0f}, + { 6.0f, 5.0f, 10.0f }, { 9.0f, 4.0f, 1.0f } }, }, @@ -1105,7 +1105,7 @@ TEST(convolution_f32_fw_gpu, basic_convolution3D_split2) { input_layout("input", input->get_layout()), data("weights_1", weights_1), data("biases_1", biases_1), - convolution("conv", "input", { "weights_1" }, { "biases_1" }, 2, tensor(1), tensor(0), tensor(1), tensor{1, 2, 3, 3, 3}, data_types::f32, true)); + convolution("conv", "input", { "weights_1" }, { "biases_1" }, 2, tensor(1), tensor(0), tensor(1), tensor{ 1, 2, 3, 3, 3 }, data_types::f32, true)); network network(engine, topology); network.set_input_data("input", input); @@ -1141,138 +1141,6 @@ TEST(convolution_f32_fw_gpu, basic_convolution3D_split2) { } } -TEST(convolution_f32_fw_gpu, basic_convolution3D_group2) { - // data is similar as in basic_convolution3D_split2 - auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::bfzyx,{ 1, 2, 4, 4, 4 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::bfzyx,{ 2, 1, 2, 2, 2 } }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 2, 1, 1, 1 } }); - - set_values(input, { - 1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 3.0f, 1.0f, - 1.0f, 1.0f, 0.0f, 2.0f, - 0.0f, 2.0f, 1.0f, 1.0f, - 1.0f, 0.0f, 0.0f, 1.0f, - 2.0f, 0.0f, 1.0f, 2.0f, - 3.0f, 1.0f, 1.0f, 1.0f, - 0.0f, 0.0f, 3.0f, 1.0f, - 2.0f, 0.0f, 1.0f, 1.0f, - 3.0f, 3.0f, 1.0f, 0.0f, - 2.0f, 1.0f, 1.0f, 0.0f, - 3.0f, 2.0f, 1.0f, 2.0f, - 1.0f, 0.0f, 2.0f, 0.0f, - 1.0f, 0.0f, 3.0f, 3.0f, - 3.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 1.0f, 0.0f, 2.0f, - 1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 3.0f, 1.0f, - 1.0f, 1.0f, 0.0f, 2.0f, - 0.0f, 2.0f, 1.0f, 1.0f, - 1.0f, 0.0f, 0.0f, 1.0f, - 2.0f, 0.0f, 1.0f, 2.0f, - 3.0f, 1.0f, 1.0f, 1.0f, - 0.0f, 0.0f, 3.0f, 1.0f, - 2.0f, 0.0f, 1.0f, 1.0f, - 3.0f, 3.0f, 1.0f, 0.0f, - 2.0f, 1.0f, 1.0f, 0.0f, - 3.0f, 2.0f, 1.0f, 2.0f, - 1.0f, 0.0f, 2.0f, 0.0f, - 1.0f, 0.0f, 3.0f, 3.0f, - 3.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 1.0f, 0.0f, 2.0f, - }); - - set_values(weights, { - 0.0f, 1.0f, - 0.0f, 0.0f, - 2.0f, 1.0f, - 0.0f, 0.0f, - 0.0f, 1.0f, - 0.0f, 0.0f, - 2.0f, 1.0f, - 0.0f, 0.0f, - }); - - set_values(biases, { 1.0f, 2.0f }); - - VVVVF output_vec = { - { - { - { 3.0f, 2.0f, 2.0f }, - { 6.0f, 5.0f, 6.0f }, - { 9.0f, 4.0f, 6.0f } - }, - { - { 5.0f, 2.0f, 5.0f }, - { 10.0f, 9.0f, 5.0f }, - { 7.0f, 5.0f, 4.0f } - }, - { - { 3.0f, 4.0f, 6.0f }, - { 6.0f, 5.0f, 10.0f }, - { 9.0f, 4.0f, 1.0f } - }, - }, - { - { - { 4.0f, 3.0f, 3.0f }, - { 7.0f, 6.0f, 7.0f }, - { 10.0f, 5.0f, 7.0f } - }, - { - { 6.0f, 3.0f, 6.0f }, - { 11.0f, 10.0f, 6.0f }, - { 8.0f, 6.0f, 5.0f } - }, - { - { 4.0f, 5.0f, 7.0f }, - { 7.0f, 6.0f, 11.0f }, - { 10.0f, 5.0f, 2.0f } - }, - } - }; - - topology topology( - input_layout("input", input->get_layout()), - data("weights", weights), - data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" })); - - network network(engine, topology); - network.set_input_data("input", input); - - auto outputs = network.execute(); - EXPECT_EQ(outputs.size(), size_t(1)); - EXPECT_EQ(outputs.begin()->first, "conv"); - - auto output_memory = outputs.at("conv").get_memory(); - auto output_layout = output_memory->get_layout(); - cldnn::mem_lock output_ptr(output_memory, get_test_stream()); - - int z_size = output_layout.size.spatial[2]; - int y_size = output_layout.size.spatial[1]; - int x_size = output_layout.size.spatial[0]; - int f_size = output_layout.size.feature[0]; - int b_size = output_layout.size.batch[0]; - EXPECT_EQ(output_layout.format, format::bfzyx); - EXPECT_EQ(b_size, 1); - EXPECT_EQ(f_size, 2); - EXPECT_EQ(z_size, 3); - EXPECT_EQ(y_size, 3); - EXPECT_EQ(x_size, 3); - for (int f = 0; f < f_size; ++f) { - for (int z = 0; z < z_size; ++z) { - for (int y = 0; y < y_size; ++y) { - for (int x = 0; x < x_size; ++x) { - EXPECT_EQ(output_vec[f][z][y][x], - output_ptr[f * z_size * y_size * x_size + z * y_size * x_size + y * x_size + x]); - } - } - } - } -} - TEST(convolution_f32_fw_gpu, with_output_size_same_input) { auto& engine = get_test_engine(); @@ -1284,8 +1152,8 @@ TEST(convolution_f32_fw_gpu, with_output_size_same_input) { input_layout("input", input->get_layout()), data("weights", weights), data("weights2", weights2), - convolution::create_with_output_size("conv1", "input", { "weights" }, {1, 64, 160, 160}, {1, 1, 2, 2}, {0, 0, -3, -3}), - convolution::create_with_output_size("conv2", "input", { "weights2" }, {1, 64, 320, 320}, {1, 1, 1, 1}, {0, 0, -3, -3}) + convolution::create_with_output_size("conv1", "input", { "weights" }, { 1, 64, 160, 160 }, { 1, 1, 2, 2 }, { 0, 0, -3, -3 }), + convolution::create_with_output_size("conv2", "input", { "weights2" }, { 1, 64, 320, 320 }, { 1, 1, 1, 1 }, { 0, 0, -3, -3 }) ); network network(engine, topology); @@ -1315,8 +1183,8 @@ TEST(convolution_f32_fw_gpu, three_convolutions_same_weights) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::bfyx, {1,2,2,2} }); - auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 2,2,1,1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 2, 2 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 2, 1, 1 } }); set_values(input, { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }); set_values(weights, { 1.0f, 1.0f, 1.0f, 1.0f }); @@ -1398,7 +1266,7 @@ TEST(convolution_f32_fw_gpu, basic_convolution) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution( "conv", "input", { "weights" }, { "biases" }, { 0,0,1,2 })); + convolution( "conv", "input", { "weights" }, { "biases" }, { 0, 0, 1, 2 })); network network(engine, topology); network.set_input_data("input", input); @@ -1462,7 +1330,7 @@ TEST(convolution_f32_fw_gpu, basic_convolution_bfyx_weights_as_input_layout) { , { "biases" } , - { 0,0,1,2 } + { 0, 0, 1, 2 } )); cldnn::build_options options; options.set_option(cldnn::build_option::optimize_data(true)); @@ -1552,11 +1420,11 @@ TEST(convolution_f32_fw_gpu, basic_convolution_input_padding) { "input", { "weights" }, { "biases" }, - { 1,1,1,1 }, - tensor{{ 0,0,1,2 }, 0}, + { 1, 1, 1, 1 }, + tensor{ { 0, 0, 1, 2 }, 0 }, { 1, 1, 1, 1 }, "", - padding{ { 0,0,0,0 }, 0 }) + padding{ { 0, 0, 0, 0 }, 0 }) ); network network(engine, topology); @@ -1629,9 +1497,9 @@ TEST(convolution_f32_fw_gpu, basic_convolution_sym_input_padding) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 1, 1, 4, 3 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 2, 2 } }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 3 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); set_values(input, { 1.0f, 2.0f, 3.0f, 4.0f, 2.0f, 2.0f, 3.0f, 4.0f, 3.0f, 3.0f, 3.0f, 5.0f }); set_values(weights, { 1.0f, 1.0f, 1.0f, 1.0f }); @@ -1653,13 +1521,13 @@ TEST(convolution_f32_fw_gpu, basic_convolution_sym_input_padding) { "input", { "weights" }, { "biases" }, - { 1,1,1,1 }, - { 0,0,0,0 }, { 1, 1, 1, 1 }, - { 0,0,1,2 }, - { 0,0,1,2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }, + { 0, 0, 1, 2 }, + { 0, 0, 1, 2 }, "", - padding{ { 0,0,0,0 }, 0 }) + padding{ { 0, 0, 0, 0 }, 0 }) ); network network(engine, topology); @@ -1726,9 +1594,9 @@ TEST(convolution_f32_fw_gpu, basic_convolution_asym_input_padding) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 1, 1, 4, 3 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 2, 2 } }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 3 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); set_values(input, { 1.0f, 2.0f, 3.0f, 4.0f, 2.0f, 2.0f, 3.0f, 4.0f, 3.0f, 3.0f, 3.0f, 5.0f }); set_values(weights, { 1.0f, 1.0f, 1.0f, 1.0f }); @@ -1749,15 +1617,15 @@ TEST(convolution_f32_fw_gpu, basic_convolution_asym_input_padding) { convolution( "conv", "input", - {"weights"}, - {"biases"}, - {1, 1, 1, 1}, - {0, 0, 0, 0}, - {1, 1, 1, 1}, - tensor{{0, 0, 1, 2}, 0}, - tensor{{0, 0, 2, 3}, 0}, + { "weights" }, + { "biases" }, + { 1, 1, 1, 1 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }, + tensor{ { 0, 0, 1, 2 }, 0 }, + tensor{ { 0, 0, 2, 3 }, 0 }, "", - padding{{0, 0, 0, 0}, 0})); + padding{ { 0, 0, 0, 0 }, 0 })); network network(engine, topology); network.set_input_data("input", input); @@ -1830,9 +1698,9 @@ TEST(convolution_f32_fw_gpu, basic_convolution_sym_input_padding_with_pad) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 1, 1, 4, 3 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 2, 2 } }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 3 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); set_values(input, { 1.0f, 2.0f, 3.0f, 4.0f, 2.0f, 2.0f, 3.0f, 4.0f, 3.0f, 3.0f, 3.0f, 5.0f }); set_values(weights, { 1.0f, 1.0f, 1.0f, 1.0f }); @@ -1858,13 +1726,13 @@ TEST(convolution_f32_fw_gpu, basic_convolution_sym_input_padding_with_pad) { "input", { "weights" }, { "biases" }, - { 1,1,1,1 }, - { 0,0,1,2 }, { 1, 1, 1, 1 }, - { 0,0,1,2 }, - { 0,0,1,2 }, + { 0, 0, 1, 2 }, + { 1, 1, 1, 1 }, + { 0, 0, 1, 2 }, + { 0, 0, 1, 2 }, "", - padding{ { 0,0,0,0 }, 0 }) + padding{ { 0, 0, 0, 0 }, 0 }) ); network network(engine, topology); @@ -1940,9 +1808,9 @@ TEST(convolution_f32_fw_gpu, basic_convolution_asym_input_padding_with_pad) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 1, 1, 4, 3 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 2, 2 } }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 1, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 3 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); set_values(input, { 1.0f, 2.0f, 3.0f, 4.0f, 2.0f, 2.0f, 3.0f, 4.0f, 3.0f, 3.0f, 3.0f, 5.0f }); set_values(weights, { 1.0f, 1.0f, 1.0f, 1.0f }); @@ -1967,15 +1835,15 @@ TEST(convolution_f32_fw_gpu, basic_convolution_asym_input_padding_with_pad) { convolution( "conv", "input", - {"weights"}, - {"biases"}, - {1, 1, 1, 1}, - tensor{{0, 0, 1, 2}, 0}, - {1, 1, 1, 1}, - tensor{{0, 0, 1, 2}, 0}, - tensor{{0, 0, 2, 3}, 0}, + { "weights" }, + { "biases" }, + { 1, 1, 1, 1 }, + tensor{ { 0, 0, 1, 2 }, 0 }, + { 1, 1, 1, 1 }, + tensor{ { 0, 0, 1, 2 }, 0 }, + tensor{ { 0, 0, 2, 3 }, 0 }, "", - padding{{0, 0, 0, 0}, 0})); + padding{ { 0, 0, 0, 0 }, 0 })); network network(engine, topology); network.set_input_data("input", input); @@ -2069,11 +1937,11 @@ TEST(convolution_f32_fw_gpu, basic_convolution_input_and_output_padding) { "input", { "weights" }, { "biases" }, - { 1,1,1,1 }, - tensor{{ 0,0,1,2 }, 0}, + { 1, 1, 1, 1 }, + tensor{ { 0, 0, 1, 2 }, 0 }, { 1, 1, 1, 1 }, "", - padding{ { 0,0,-x_pad,-y_pad }, 0 }) + padding{ { 0, 0, -x_pad, -y_pad }, 0 }) ); network network(engine, topology); @@ -2156,7 +2024,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x1x1_nopad_random) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 4 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1,{ 2, 2 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 2, 2 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -2168,7 +2036,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x1x1_nopad_random) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", {"weights"}, {"biases"}, {1,1,2,2}) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 2, 2 }) ); network network(engine, topology); @@ -2226,7 +2094,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in2x2x1x2_nopad_random) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 2, 1, 2, 2 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 2,{ 1, 1 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 2, { 1, 1 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -2238,7 +2106,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in2x2x1x2_nopad_random) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, { 1,1,2,2 }) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 2, 2 }) ); network network(engine, topology); @@ -2284,7 +2152,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x1x1_nopad) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 4 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1,{ 2, 2 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 2, 2 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -2296,7 +2164,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x1x1_nopad) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, { 1,1,2,2 }) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 2, 2 }) ); network network(engine, topology); @@ -2338,7 +2206,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in2x2x1x2_nopad) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 2, 1, 2, 2 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 2,{ 1, 1 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 2, { 1, 1 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -2350,7 +2218,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in2x2x1x2_nopad) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, { 1,1,2,2 } ) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 2, 2 } ) ); network network(engine, topology); @@ -2390,7 +2258,7 @@ TEST(convolution_f32_fw_gpu, basic_ofm_wsiz2x1x2x1_in1x2x1_nopad) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 1, 2 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1 ,{ 1, 1 }, 2 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 1, 1 }, 2 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 1, 1, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); @@ -2402,7 +2270,7 @@ TEST(convolution_f32_fw_gpu, basic_ofm_wsiz2x1x2x1_in1x2x1_nopad) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, { 1,1,5,5 }) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 5, 5 }) ); network network(engine, topology); @@ -2449,7 +2317,7 @@ TEST(convolution_f32_fw_gpu, basic_ofm_wsiz3x2x2x1_in2x2x1_nopad) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 2, 1, 2 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1 ,{ 1, 1 }, 3 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 1, 1 }, 3 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 3, 2, 1, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 3, 1, 1 } }); @@ -2461,7 +2329,7 @@ TEST(convolution_f32_fw_gpu, basic_ofm_wsiz3x2x2x1_in2x2x1_nopad) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, { 1,1,5,5 }) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 5, 5 }) ); network network(engine, topology); @@ -2505,7 +2373,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2x1x3_wstr2x2_in2x2x1x1_nopad) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 2, 2 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1 ,{ 1, 1 }, 3 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 1, 1 }, 3 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 3, 1, 2, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 3, 1, 1 } }); @@ -2517,7 +2385,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2x1x3_wstr2x2_in2x2x1x1_nopad) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, { 1,1,2,2 }) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 2, 2 }) ); network network(engine, topology); @@ -2561,7 +2429,7 @@ TEST(convolution_f32_fw_gpu, wsiz3x3_wstr2x2_in2x2x1x1_zeropad) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 2, 2 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1,{ 1, 1 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 1, 1 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 3, 3 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -2573,7 +2441,7 @@ TEST(convolution_f32_fw_gpu, wsiz3x3_wstr2x2_in2x2x1x1_zeropad) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, { 1,1,2,2 }) + convolution("conv", "input", { "weights" }, { "biases" }, { 1, 1, 2, 2 }) ); network network(engine, topology); @@ -2618,7 +2486,7 @@ TEST(convolution_f32_fw_gpu, offsets_wsiz3x3_wstr2x2_in2x2x1x1_zeropad) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 2, 2 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1 ,{ 2, 2 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 2, 2 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 3, 3 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -2635,11 +2503,11 @@ TEST(convolution_f32_fw_gpu, offsets_wsiz3x3_wstr2x2_in2x2x1x1_zeropad) { "input", { "weights" }, { "biases" }, - { 1,1,2,2 }, - tensor{{ 0,0,1,1 }, 0}, + { 1, 1, 2, 2 }, + tensor{ { 0, 0, 1, 1 }, 0 }, { 1, 1, 1, 1 }, "", - padding{ { 0,0,1,1 }, 0 }) + padding{ { 0, 0, 1, 1 }, 0 }) ); network network(engine, topology); @@ -2694,8 +2562,8 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_split2) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 2, 4, 4 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1,{ 2, 2 }, 2 } }); - auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(2), batch(1), feature(1), spatial(2,2))}); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 2, 2 }, 2 } }); + auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(2), batch(1), feature(1), spatial(2, 2))}); auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); set_values(input, { @@ -2717,9 +2585,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_split2) { { "weights1" }, { "biases1" }, 2, - { 0,0,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 0, 0, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -2792,8 +2660,8 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 2, 2, 4, 4 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 2,{ 2, 2 }, 2 } }); - auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(2), batch(1), feature(1), spatial(2,2)) }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 2, { 2, 2 }, 2 } }); + auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(2), batch(1), feature(1), spatial(2, 2)) }); auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); set_values(input, { @@ -2815,9 +2683,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2) { { "weights1" }, { "biases1" }, 2, - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -2853,9 +2721,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_group2) { // data is similar as in basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_split2 auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 1, 2, 4, 4 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::goiyx ,tensor(group(2), batch(1), feature(1), spatial(2,2)) }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 2, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 2, 4, 4 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(2), batch(1), feature(1), spatial(2, 2)) }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); set_values(input, { -0.5f, 0.5f, 1.0f, 1.5f, 0.5f, 2.3f, 2.0f, -0.4f, @@ -2879,9 +2747,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_group2) { { "weights" }, { "biases" }, 2, // number of groups - { 0,0,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 0, 0, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -2910,9 +2778,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_group2_bfyx) auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 1, 2, 4, 4 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::goiyx ,tensor(group(2), batch(1), feature(1), spatial(2,2)) }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 2, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 2, 4, 4 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(2), batch(1), feature(1), spatial(2, 2)) }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); set_values(input, { -0.5f, 0.5f, 1.0f, 1.5f, 0.5f, 2.3f, 2.0f, -0.4f, @@ -2928,7 +2796,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_group2_bfyx) topology topology( input_layout("input", input->get_layout()), - reorder("input_1", "input", { data_types::f32,format::bfyx,{ 1, 2, 4, 4 } }), + reorder("input_1", "input", { data_types::f32, format::bfyx, { 1, 2, 4, 4 } }), data("weights", weights), data("biases", biases), convolution( @@ -2937,9 +2805,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x1_nopad_group2_bfyx) { "weights" }, { "biases" }, 2, // number of groups - { 0,0,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 0, 0, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -2968,9 +2836,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group2) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 2, 2, 4, 4 } }); - auto weights = engine.allocate_memory({ data_types::f32, format::goiyx ,tensor(group(2), batch(1), feature(1), spatial(2,2)) }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 2, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 2, 2, 4, 4 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(2), batch(1), feature(1), spatial(2, 2)) }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); set_values(input, { -0.5f, -0.5f, 0.5f, 0.5f, 1.0f, 1.0f, 1.5f, 1.5f, 0.5f, 0.5f, 2.3f, 2.3f, 2.0f, 2.0f, -0.4f, -0.4f, @@ -2994,9 +2862,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group2) { { "weights" }, { "biases" }, 2, // number of groups - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3034,7 +2902,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2_depthw auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 2, 16, 4, 4 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 2, 16, 4, 4 } }); set_values(input, { -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, @@ -3055,8 +2923,8 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2_depthw -0.5f, -0.5f, 3.0f, 3.0f, -0.5f, -0.5f, 3.0f, 3.0f, -0.5f, -0.5f, 3.0f, 3.0f, -0.5f, -0.5f, 3.0f, 3.0f, -0.5f, -0.5f, 3.0f, 3.0f, -0.5f, -0.5f, 3.0f, 3.0f, -0.5f, -0.5f, 3.0f, 3.0f, -0.5f, -0.5f, 3.0f, 3.0f, }); - auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx ,tensor(group(16), batch(1), feature(1), spatial(2,2)) }); - auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 16, 1, 1 } }); + auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(16), batch(1), feature(1), spatial(2, 2)) }); + auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 16, 1, 1 } }); set_values(weights1, { -2.0f, 0.5f, 3.5f, 1.5f, -1.2f, 1.5f, 0.5f, -0.5f, -2.0f, 0.5f, 3.5f, 1.5f, -1.2f, 1.5f, 0.5f, -0.5f, @@ -3089,9 +2957,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2_depthw { weights_id }, { bias_id }, 16, // number of groups - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3123,7 +2991,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2_depthw // data is similar as in basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2 but with batch 1 auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::bfyx,{ 2, 16, 4, 4 } }); + auto input = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 16, 4, 4 } }); set_values(input, { -0.5f, 1.0f, 0.5f, 2.0f, 1.5f, -0.5f, 0.0f, -1.0f, 0.5f, 0.5f, -1.0f, 1.0f, 0.5f, 2.0f, 1.5f, -0.5f, @@ -3144,8 +3012,8 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2_depthw 0.5f, 1.5f, 2.3f, -0.4f, 2.0f, -4.0f, 1.0f, 3.0f, 0.5f, 1.5f, 2.3f, -0.4f, 2.0f, -4.0f, 1.0f, 3.0f, }); - auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx ,tensor(group(16), batch(1), feature(1), spatial(2,2)) }); - auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 16, 1, 1 } }); + auto weights1 = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(16), batch(1), feature(1), spatial(2, 2)) }); + auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 16, 1, 1 } }); set_values(weights1, { -2.0f, 0.5f, 3.5f, 1.5f, -1.2f, 1.5f, 0.5f, -0.5f, -2.0f, 0.5f, 3.5f, 1.5f, -1.2f, 1.5f, 0.5f, -0.5f, @@ -3178,9 +3046,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2_depthw { weights_id }, { bias_id }, 16, // number of groups - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3217,7 +3085,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::yxfb,{ 2, 16, 4, 4 } }); + auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 2, 16, 4, 4 } }); set_values(input, { -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.5f, 0.5f, @@ -3240,8 +3108,8 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16) { topology topology(input_layout("input", input->get_layout())); - auto weights = engine.allocate_memory({ data_types::f32, format::goiyx ,tensor(group(16), batch(1), feature(1), spatial(2,2)) }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 16, 1, 1 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(16), batch(1), feature(1), spatial(2, 2)) }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 16, 1, 1 } }); set_values(weights, { @@ -3263,7 +3131,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16) { -1.2f, 1.5f, 0.5f, -0.5f } ); - set_values(biases, { 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f}); + set_values(biases, { 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f }); topology.add( data("weights", weights), @@ -3277,9 +3145,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16) { { "weights" }, { "bias" }, 16, - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3311,7 +3179,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16_bfyx) // data is similar as in basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_split2_depthwise_sep_opt_bfyx auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::f32, format::bfyx,{ 2, 16, 4, 4 } }); + auto input = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 16, 4, 4 } }); set_values(input, { -0.5f, 1.0f, 0.5f, 2.0f, 1.5f, -0.5f, 0.0f, -1.0f, 0.5f, 0.5f, -1.0f, 1.0f, 0.5f, 2.0f, 1.5f, -0.5f, @@ -3334,8 +3202,8 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16_bfyx) topology topology(input_layout("input", input->get_layout())); - auto weights = engine.allocate_memory({ data_types::f32, format::goiyx ,tensor(group(16), batch(1), feature(1), spatial(2,2)) }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 16, 1, 1 } }); + auto weights = engine.allocate_memory({ data_types::f32, format::goiyx, tensor(group(16), batch(1), feature(1), spatial(2, 2)) }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 16, 1, 1 } }); set_values(weights, { @@ -3358,7 +3226,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16_bfyx) } ); - set_values(biases, { 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f}); + set_values(biases, { 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f, 2.0f, -1.0f }); topology.add( data("weights", weights), @@ -3372,9 +3240,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16_bfyx) { "weights" }, { "bias" }, 16, - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3442,7 +3310,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16_bfyx) auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 4, 1, 1 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1,{ 1, 1 }, 4 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 1, 1 }, 4 } }); auto weights1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 2, 1, 1 } }); auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); auto weights2 = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 2, 1, 1 } }); @@ -3467,9 +3335,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz2x2_wstr2x2_in4x4x2x2_nopad_group16_bfyx) "input", { "weights1", "weights2" }, { "biases1", "biases2" }, - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3523,7 +3391,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz1x1_wstr2x2_in1x1x2x1_nopad_split2) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 2, 1, 1 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1,{ 1, 1 }, 4 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 1, 1 }, 4 } }); auto weights1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 1, 1, 1 } }); auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); auto weights2 = engine.allocate_memory({ data_types::f32, format::bfyx, { 2, 1, 1, 1 } }); @@ -3548,9 +3416,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz1x1_wstr2x2_in1x1x2x1_nopad_split2) { "input", { "weights1", "weights2" }, { "biases1", "biases2" }, - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3610,7 +3478,7 @@ TEST(convolution_f32_fw_gpu, basic_wsiz1x1_wstr2x2_in1x1x4x1_filter_1x3x2x1x1_no auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 4, 1, 1 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1,{ 1, 1 }, 6 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 1, 1 }, 6 } }); auto weights1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 3, 2, 1, 1 } }); auto biases1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 3, 1, 1 } }); auto weights2 = engine.allocate_memory({ data_types::f32, format::bfyx, { 3, 2, 1, 1 } }); @@ -3635,9 +3503,9 @@ TEST(convolution_f32_fw_gpu, basic_wsiz1x1_wstr2x2_in1x1x4x1_filter_1x3x2x1x1_no "input", { "weights1", "weights2" }, { "biases1", "biases2" }, - { 1,1,2,2 }, - { 0,0,0,0 }, - { 1,1,1,1 }) + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, + { 1, 1, 1, 1 }) ); network network(engine, topology); @@ -3687,7 +3555,7 @@ TEST(convolution_gpu, trivial_convolution_relu) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 4 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1 ,{ 2, 2 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 2, 2 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -3709,8 +3577,8 @@ TEST(convolution_gpu, trivial_convolution_relu) { "input", { "weights" }, { "biases" }, - { 1,1,2,2 }, - { 0,0,0,0 }, + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, { 1, 1, 1, 1 }), activation( "out", @@ -3764,7 +3632,7 @@ TEST(convolution_gpu, relu_with_negative_slope) { auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::yxfb, { 1, 1, 4, 4 } }); - //auto output = memory::allocate({ memory::format::yxfb_f32,{ 1 ,{ 2, 2 }, 1 } }); + //auto output = memory::allocate({ memory::format::yxfb_f32, { 1, { 2, 2 }, 1 } }); auto weights = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 2, 2 } }); auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); @@ -3786,14 +3654,14 @@ TEST(convolution_gpu, relu_with_negative_slope) { "input", { "weights" }, { "biases" }, - { 1,1,2,2 }, - { 0,0,0,0 }, + { 1, 1, 2, 2 }, + { 0, 0, 0, 0 }, { 1, 1, 1, 1 }), activation( "out", "conv", activation_func::relu_negative_slope, - {0.1f, 0.0f} + { 0.1f, 0.0f } ) ); @@ -3820,9 +3688,9 @@ TEST(convolution_gpu, DISABLED_two_1x1_kernels_after_each_other) { extern const std::vector conv_1x1_output; - auto input = engine.allocate_memory({ data_types::f32, format::bfyx,{ 16, 8, 16, 16 } }); - auto weights_conv_1 = engine.allocate_memory({ data_types::f32, format::bfyx,{ 8, 8, 1, 1 } }); - auto weights_conv_2 = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 8, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::f32, format::bfyx, { 16, 8, 16, 16 } }); + auto weights_conv_1 = engine.allocate_memory({ data_types::f32, format::bfyx, { 8, 8, 1, 1 } }); + auto weights_conv_2 = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 8, 1, 1 } }); set_random_values(input); set_random_values(weights_conv_1); @@ -3909,9 +3777,9 @@ TEST(convolution_gpu, basic_yxfb_4_4_yxfb_2_2_b16_if2_of16_st2_2_p0_sp1_fp32) auto input = engine.allocate_memory({ data_types::f32, input_format, input_size }); auto weights_size = tensor( output_feature_count, input_feature_count, weights_x, weights_y ); auto weights = engine.allocate_memory({ data_types::f32, weights_format, weights_size }); - auto biases = engine.allocate_memory({ data_types::f32, biases_format, {1,output_feature_count,1,1}}); + auto biases = engine.allocate_memory({ data_types::f32, biases_format, { 1, output_feature_count, 1, 1 } }); - //auto output = memory::allocate({output_format, {batch_size, {output_x, output_y}, output_feature_count}}); + //auto output = memory::allocate({ output_format, { batch_size, { output_x, output_y }, output_feature_count } }); // input: std::vector input_vals_template { @@ -4014,8 +3882,8 @@ TEST(convolution_gpu, basic_yxfb_4_4_yxfb_2_2_b16_if2_of16_st2_2_p0_sp1_fp32) "input", { "weights" }, { "biases" }, - { 1,1,stride_x,stride_y }, - { 0,0,0,0 }, + { 1, 1, stride_x, stride_y }, + { 0, 0, 0, 0 }, { 1, 1, 1, 1 }), activation( "out", @@ -4060,7 +3928,7 @@ TEST(convolution_gpu, basic_yxfb_4_4_yxfb_2_2_b16_if2_of16_st2_2_p0_sp1_fp32) } void add_primitives(engine& engine, topology& topology) { - auto weights = engine.allocate_memory({ data_types::i8, format::bfyx,{ 2, 1, 3, 2 } }); + auto weights = engine.allocate_memory({ data_types::i8, format::bfyx, { 2, 1, 3, 2 } }); std::vector weights_values = { 1, 2, 1, 2, 1, 2, @@ -4068,7 +3936,7 @@ void add_primitives(engine& engine, topology& topology) { 19, 17, -1, -10, 32, 23 }; set_values(weights, weights_values); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 2, 1, 1 } }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); set_values(biases, { 1.0f, -8.0f }); topology.add( @@ -4108,7 +3976,7 @@ TEST(convolution_f32_fw_gpu, byte_activation) { // Bias: // 1 -8 auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::i8, format::bfyx,{ 1, 1, 5, 4 } }); + auto input = engine.allocate_memory({ data_types::i8, format::bfyx, { 1, 1, 5, 4 } }); VVVF output_vec = { { @@ -4153,7 +4021,7 @@ TEST(convolution_f32_fw_gpu, byte_activation) { for (int f = 0; f < f_size; f++) for (int y = 0; y < y_size; ++y) { for (int x = 0; x < x_size; ++x) { - EXPECT_NEAR(output_vec[f][y][x], ((float)output_ptr[f*y_size*x_size + y * x_size + x]), 3.0f); + EXPECT_NEAR(output_vec[f][y][x], ((float)output_ptr[f * y_size * x_size + y * x_size + x]), 3.0f); } } } @@ -4161,9 +4029,9 @@ TEST(convolution_f32_fw_gpu, byte_activation) { TEST(convolution_int8_fw_gpu, quantized_convolution_u8s8f32_symmetric) { auto& engine = get_test_engine(); - auto input = engine.allocate_memory({ data_types::u8, format::bfyx,{ 1, 1, 5, 4 } }); - auto weights = engine.allocate_memory({ data_types::i8, format::bfyx,{ 2, 1, 3, 3 } }); - auto biases = engine.allocate_memory({ data_types::f32, format::bfyx,{ 1, 2, 1, 1 } }); + auto input = engine.allocate_memory({ data_types::u8, format::bfyx, { 1, 1, 5, 4 } }); + auto weights = engine.allocate_memory({ data_types::i8, format::bfyx, { 2, 1, 3, 3 } }); + auto biases = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 2, 1, 1 } }); set_values(input, { 1, 2, 3, 4, 5, 2, 2, 3, 4, 6, @@ -4192,7 +4060,7 @@ TEST(convolution_int8_fw_gpu, quantized_convolution_u8s8f32_symmetric) { input_layout("input", input->get_layout()), data("weights", weights), data("biases", biases), - convolution("conv", "input", { "weights" }, { "biases" }, tensor{ 0, 0, 2, 2 }, tensor(0), tensor{1, 1, 1, 1}, tensor{1, 2, 3, 2}), + convolution("conv", "input", { "weights" }, { "biases" }, tensor{ 0, 0, 2, 2 }, tensor(0), tensor{ 1, 1, 1, 1 }, tensor{ 1, 2, 3, 2 }), reorder("out", "conv", format::bfyx, data_types::f32)); build_options opts; @@ -4219,7 +4087,7 @@ TEST(convolution_int8_fw_gpu, quantized_convolution_u8s8f32_symmetric) { for (int f = 0; f < f_size; f++) for (int y = 0; y < y_size; ++y) { for (int x = 0; x < x_size; ++x) { - EXPECT_NEAR(output_vec[f][y][x], ((float)output_ptr[f*y_size*x_size + y * x_size + x]), 1e-5f) << + EXPECT_NEAR(output_vec[f][y][x], ((float)output_ptr[f * y_size * x_size + y * x_size + x]), 1e-5f) << " x="<get_layout()), - reorder("cvt_input", "input", {data_types::f16, input_format, input_size}), + reorder("cvt_input", "input", { data_types::f16, input_format, input_size }), data("weights", weights), - reorder("cvt_weights", "weights", {data_types::f16, weights_format, weights_size}), + reorder("cvt_weights", "weights", { data_types::f16, weights_format, weights_size }), data("biases", biases), - reorder("cvt_biases", "biases", {data_types::f16, biases_format, biases_size}), + reorder("cvt_biases", "biases", { data_types::f16, biases_format, biases_size }), convolution( "conv", "cvt_input", { "cvt_weights" }, { "cvt_biases" }, - { 1,1,stride_x,stride_y }), - reorder("output", "conv", {data_types::f32, output_format, output_size}) + { 1, 1, stride_x, stride_y }), + reorder("output", "conv", { data_types::f32, output_format, output_size }) ); network network(engine, topology); @@ -5092,7 +4960,7 @@ TEST_P(convolution_gpu_fs_byx_fsv32, fs_byx_fsv32) topology.add(data("biases_fsv", biases_mem)); auto conv_fsv = convolution("conv_fsv", "input_fsv", { "weights_fsv" }, { "biases_fsv" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); @@ -5115,7 +4983,7 @@ TEST_P(convolution_gpu_fs_byx_fsv32, fs_byx_fsv32) } auto conv_fsv = convolution("conv_fsv", "input_fsv", { "weights_fsv" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); @@ -5124,7 +4992,7 @@ TEST_P(convolution_gpu_fs_byx_fsv32, fs_byx_fsv32) build_options options; implementation_desc conv_impl = { format::fs_b_yx_fsv32, "" }; - options.set_option(build_option::force_implementations({ {"conv_fsv", conv_impl} })); + options.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); options.set_option(build_option::optimize_data(true)); network network(engine, topology, options); @@ -5194,7 +5062,7 @@ TEST(convolution_f16_fsv_gpu, convolution_f16_fsv_gpu_padding) { data("weights_fsv", weights_mem)); // add input padding by X and Y - layout w_pad(data_types::f16, format::bfyx, input_size, padding({ 0,0,1,1 }, { 0, 0, 0, 0 })); + layout w_pad(data_types::f16, format::bfyx, input_size, padding({ 0, 0, 1, 1 }, { 0, 0, 0, 0 })); topology.add(reorder("input_fsv", "input", w_pad)); // Generate bias data @@ -5225,7 +5093,7 @@ TEST(convolution_f16_fsv_gpu, convolution_f16_fsv_gpu_padding) { build_options options; implementation_desc conv_impl = { format::fs_b_yx_fsv32, "convolution_gpu_bfyx_to_fs_byx_fsv32" }; - options.set_option(build_option::force_implementations({ {"conv_fsv", conv_impl} })); + options.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); options.set_option(build_option::optimize_data(true)); network network(engine, topology, options); @@ -5383,7 +5251,7 @@ TEST_P(convolution_gpu_fs_byx_fsv32_crop, fs_byx_fsv32_crop) topology.add(data("biases_fsv", biases_mem)); auto conv_fsv = convolution("conv_fsv", "right_crop", { "weights_fsv" }, { "biases_fsv" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); } @@ -5405,7 +5273,7 @@ TEST_P(convolution_gpu_fs_byx_fsv32_crop, fs_byx_fsv32_crop) } auto conv_fsv = convolution("conv_fsv", "right_crop", { "weights_fsv" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); } @@ -5432,7 +5300,7 @@ TEST_P(convolution_gpu_fs_byx_fsv32_crop, fs_byx_fsv32_crop) build_options options; implementation_desc conv_impl = { format::fs_b_yx_fsv32, "convolution_gpu_bfyx_to_fs_byx_fsv32" }; - options.set_option(build_option::force_implementations({ {"conv_fsv", conv_impl} })); + options.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); options.set_option(build_option::optimize_data(true)); network network(engine, topology, options); @@ -5497,12 +5365,12 @@ TEST(convolution_f32_fw_gpu, convolution_int8_b_fs_yx_fsv4_to_bfyx) { topology topology_ref( input_layout("input", input->get_layout()), - reorder("to_int", "input", {data_types::i8, format::bfyx, {batch_num, input_f, input_size_x, input_size_y}}), + reorder("to_int", "input", { data_types::i8, format::bfyx, { batch_num, input_f, input_size_x, input_size_y } }), data("weights", weights), data("biases", biases), - convolution("conv", "to_int", {"weights"}, {"biases"}, {1, 1, 1, 1}, tensor{{0, 0, 2, 2}, 0}, {1, 1, 1, 1}, "", - padding{{0, 0, output_padding, output_padding}, 0}), - reorder("output", "conv", {data_types::f32, format::bfyx, {batch_num, input_f, input_size_x, input_size_y}})); + convolution("conv", "to_int", { "weights" }, { "biases" }, { 1, 1, 1, 1 }, tensor{ { 0, 0, 2, 2 }, 0 }, { 1, 1, 1, 1 }, "", + padding{ { 0, 0, output_padding, output_padding }, 0 }), + reorder("output", "conv", { data_types::f32, format::bfyx, { batch_num, input_f, input_size_x, input_size_y } })); build_options build_opt; @@ -5519,12 +5387,12 @@ TEST(convolution_f32_fw_gpu, convolution_int8_b_fs_yx_fsv4_to_bfyx) { topology topology_act( input_layout("input", input->get_layout()), - reorder("to_int", "input", { data_types::i8,format::b_fs_yx_fsv4,{ batch_num, input_f, input_size_x, input_size_y } }), + reorder("to_int", "input", { data_types::i8,format::b_fs_yx_fsv4, { batch_num, input_f, input_size_x, input_size_y } }), data("weights", weights), data("biases", biases), - convolution("conv", "to_int", { "weights" }, { "biases" }, { 1, 1, 1, 1 }, tensor{{ 0, 0, 2, 2 }, 0}, { 1, 1, 1, 1 }, "", + convolution("conv", "to_int", { "weights" }, { "biases" }, { 1, 1, 1, 1 }, tensor{ { 0, 0, 2, 2 }, 0 }, { 1, 1, 1, 1 }, "", padding{ { 0, 0, output_padding, output_padding }, 0 }), - reorder("output", "conv", { data_types::f32,format::bfyx,{ batch_num, input_f, input_size_x, input_size_y } })); + reorder("output", "conv", { data_types::f32,format::bfyx, { batch_num, input_f, input_size_x, input_size_y } })); build_options build_opt_act; @@ -5634,7 +5502,7 @@ TEST(convolution_gpu, bfyx_iyxo_5x5_fp16) topology.add(data("biases_fsv", biases_mem)); auto conv_fsv = convolution("conv_fsv", "input", { "weights_fsv" }, { "biases_fsv" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); @@ -5659,7 +5527,7 @@ TEST(convolution_gpu, bfyx_iyxo_5x5_fp16) auto conv_fsv = convolution("conv_fsv", "input", { "weights_fsv" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); @@ -5737,7 +5605,7 @@ void blockedFormatZeroCheck(cldnn::memory::ptr out_mem) { // skip on new batch if (i % (number_of_zeroes / batch_skip) == 0) zero_ind += to_skip; - if (zero_ind >= (size_t)b*f*spatials) + if (zero_ind >= (size_t) b * f * spatials) return; zero_ind += f_mod; @@ -5862,7 +5730,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp32) topology.add(data("biases", biases_mem)); auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, { "biases" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad, 0 }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad, 0 }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding, 0 }, 0.f); topology.add(conv_bsv16_fsv16); @@ -5885,7 +5753,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp32) } auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad, 0 }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad, 0 }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding, 0 }, 0.f); topology.add(conv_bsv16_fsv16); @@ -5895,7 +5763,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp32) build_options options; options.set_option(build_option::optimize_data(true)); - options.set_option(build_option::outputs({"conv_bsv16_fsv16", "reorder_bfzyx"})); + options.set_option(build_option::outputs({ "conv_bsv16_fsv16", "reorder_bfzyx" })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -5999,7 +5867,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp16) topology.add(data("biases", biases_mem)); auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, { "biases" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad, 0 }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad, 0 }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding, 0 }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6022,7 +5890,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp16) } auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad, 0 }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad, 0 }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding, 0 }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6032,7 +5900,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp16) build_options options; options.set_option(build_option::optimize_data(true)); - options.set_option(build_option::outputs({"conv_bsv16_fsv16", "reorder_bfzyx"})); + options.set_option(build_option::outputs({ "conv_bsv16_fsv16", "reorder_bfzyx" })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -6128,7 +5996,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp32_fused_ops) topology.add(data("biases", biases_mem)); auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, { "biases" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad, 0 }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad, 0 }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding, 0 }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6151,15 +6019,15 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp32_fused_ops) } auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad, 0 }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad, 0 }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding, 0 }, 0.f); topology.add(conv_bsv16_fsv16); } const float scalar = 5.5f; - auto scale_mem = engine.allocate_memory({ data_types::f32, format::bfzyx, {1, 1, 1, 1, 1} }); - set_values(scale_mem, {scalar}); + auto scale_mem = engine.allocate_memory({ data_types::f32, format::bfzyx, { 1, 1, 1, 1, 1 } }); + set_values(scale_mem, { scalar }); topology.add(data("scalar", scale_mem)); topology.add(scale("scale", "conv_bsv16_fsv16", "scalar")); @@ -6168,7 +6036,7 @@ TEST_P(convolution_gpu_block_layout3D, bfzyx_bsv16_fsv16_fp32_fused_ops) build_options options; options.set_option(build_option::optimize_data(true)); - options.set_option(build_option::outputs({"conv_bsv16_fsv16", "reorder_bfzyx"})); + options.set_option(build_option::outputs({ "conv_bsv16_fsv16", "reorder_bfzyx" })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -6296,7 +6164,7 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp32) topology.add(data("biases", biases_mem)); auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, { "biases" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6319,7 +6187,7 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp32) } auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6329,9 +6197,9 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp32) build_options options; options.set_option(build_option::optimize_data(true)); - options.set_option(build_option::outputs({"conv_bsv16_fsv16", "reorder_bfyx"})); + options.set_option(build_option::outputs({ "conv_bsv16_fsv16", "reorder_bfyx" })); implementation_desc conv_impl = { format::bs_fs_yx_bsv16_fsv16, "" }; - options.set_option(build_option::force_implementations({{"conv_bsv16_fsv16", conv_impl}})); + options.set_option(build_option::force_implementations({ { "conv_bsv16_fsv16", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -6436,7 +6304,7 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp16) topology.add(data("biases", biases_mem)); auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, { "biases" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding, 0 }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6459,7 +6327,7 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp16) } auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6469,9 +6337,9 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp16) build_options options; options.set_option(build_option::optimize_data(true)); - options.set_option(build_option::outputs({"conv_bsv16_fsv16", "reorder_bfyx"})); + options.set_option(build_option::outputs({ "conv_bsv16_fsv16", "reorder_bfyx" })); implementation_desc conv_impl = { format::bs_fs_yx_bsv16_fsv16, "" }; - options.set_option(build_option::force_implementations({{"conv_bsv16_fsv16", conv_impl}})); + options.set_option(build_option::force_implementations({ { "conv_bsv16_fsv16", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -6567,7 +6435,7 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp32_fused_ops) topology.add(data("biases", biases_mem)); auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, { "biases" }, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad, pad }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_bsv16_fsv16); @@ -6590,15 +6458,15 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp32_fused_ops) } auto conv_bsv16_fsv16 = convolution("conv_bsv16_fsv16", "input_bsv16_fsv16", { "weights" }, - { 1, 1, stride, stride }, tensor{ {0, 0, pad, pad}, 0 }); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad, pad }, 0 }); conv_bsv16_fsv16.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_bsv16_fsv16); } const float scalar = 5.5f; - auto scale_mem = engine.allocate_memory({ data_types::f32, format::bfyx, {1, 1, 1, 1} }); - set_values(scale_mem, {scalar}); + auto scale_mem = engine.allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 1, 1 } }); + set_values(scale_mem, { scalar }); topology.add(data("scalar", scale_mem)); topology.add(scale("scale", "conv_bsv16_fsv16", "scalar")); @@ -6607,9 +6475,9 @@ TEST_P(convolution_gpu_block_layout, bfyx_bsv16_fsv16_fp32_fused_ops) build_options options; options.set_option(build_option::optimize_data(true)); - options.set_option(build_option::outputs({"conv_bsv16_fsv16", "reorder_bfyx"})); + options.set_option(build_option::outputs({ "conv_bsv16_fsv16", "reorder_bfyx" })); implementation_desc conv_impl = { format::bs_fs_yx_bsv16_fsv16, "" }; - options.set_option(build_option::force_implementations({{"conv_bsv16_fsv16", conv_impl}})); + options.set_option(build_option::force_implementations({ { "conv_bsv16_fsv16", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -6738,7 +6606,7 @@ TEST_P(convolution_depthwise_gpu, depthwise_conv_fs_b_yx_fsv32) } auto conv_fsv = convolution("conv_fsv", "input_fsv", { "weights_fsv" }, groups, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad_x, pad_y }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad_x, pad_y }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); @@ -6746,7 +6614,7 @@ TEST_P(convolution_depthwise_gpu, depthwise_conv_fs_b_yx_fsv32) build_options options; options.set_option(build_option::optimize_data(true)); implementation_desc conv_impl = { format::fs_b_yx_fsv32, "" }; - options.set_option(build_option::force_implementations({ {"conv_fsv", conv_impl} })); + options.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -6881,7 +6749,7 @@ TEST_P(convolution_depthwise_gpu_fsv16, depthwise_conv_b_fs_yx_fsv16) } auto conv_fsv = convolution("conv_fsv", "input_fsv", { "weights_fsv" }, groups, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad_x, pad_y }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad_x, pad_y }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); @@ -6889,7 +6757,7 @@ TEST_P(convolution_depthwise_gpu_fsv16, depthwise_conv_b_fs_yx_fsv16) build_options options; options.set_option(build_option::optimize_data(true)); implementation_desc conv_impl = { format::b_fs_yx_fsv16, "" }; - options.set_option(build_option::force_implementations({ {"conv_fsv", conv_impl} })); + options.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -6937,15 +6805,15 @@ TEST(convolution_depthwise_gpu_fsv16, depthwise_conv_b_fs_yx_fsv16_in_feature_pa auto stride = tensor{ 1, 1, 1, 1 }; auto pad = tensor{ 0 }; auto dilation = tensor{ 1, 1, 1, 1 }; - auto output_size = tensor{ 1, num_groups, 1, 2}; + auto output_size = tensor{ 1, num_groups, 1, 2 }; auto input_lower_sizes = { 0, 16, 0, 0 }; auto input_upper_sizes = { 0, 64, 0, 0 }; auto& engine = get_test_engine(); auto input = engine.allocate_memory({ data_types::f32, format::bfyx, input_size }); - auto weights = engine.allocate_memory({ data_types::f32, format::goiyx, weights_size}); - auto bias = engine.allocate_memory({ data_types::f32, format::bfyx, bias_size}); + auto weights = engine.allocate_memory({ data_types::f32, format::goiyx, weights_size }); + auto bias = engine.allocate_memory({ data_types::f32, format::bfyx, bias_size }); set_values(input, { 3, -1, -1, -1, 2, -2, 2, 2, 0, 1, -5, 4, -1, 4, 1, 0, @@ -6983,7 +6851,7 @@ TEST(convolution_depthwise_gpu_fsv16, depthwise_conv_b_fs_yx_fsv16_in_feature_pa build_options options; options.set_option(build_option::optimize_data(true)); implementation_desc conv_impl = { format::b_fs_yx_fsv16, "" }; - options.set_option(build_option::force_implementations({ {"conv", conv_impl} })); + options.set_option(build_option::force_implementations({ { "conv", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input); @@ -7088,7 +6956,7 @@ TEST_P(convolution_depthwise_gpu_bfyx, depthwise_conv_bfyx) } auto conv_fsv = convolution("conv", "input", { "weights" }, groups, - { 1, 1, stride, stride }, tensor{{ 0, 0, pad_x, pad_y }, 0}); + { 1, 1, stride, stride }, tensor{ { 0, 0, pad_x, pad_y }, 0 }); conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); @@ -7096,7 +6964,7 @@ TEST_P(convolution_depthwise_gpu_bfyx, depthwise_conv_bfyx) build_options options; options.set_option(build_option::optimize_data(true)); implementation_desc conv_impl = { format::bfyx, "" }; - options.set_option(build_option::force_implementations({ {"conv", conv_impl} })); + options.set_option(build_option::force_implementations({ { "conv", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -7385,10 +7253,10 @@ TEST_P(convolution_grouped_gpu, base) { topology topology(input_layout("input", input->get_layout()), data("weights", weights), - reorder("input_fsv", "input", {data_types::i8, input_data_format, input_size}), + reorder("input_fsv", "input", { data_types::i8, input_data_format, input_size }), convolution("conv", "input_fsv", - {"weights"}, + { "weights" }, std::vector(0), weights_zp_prim_name, input_zp_prim_name, @@ -7400,7 +7268,7 @@ TEST_P(convolution_grouped_gpu, base) { tensor(batch(1), feature(1), spatial(1, 1, 1, 1)), ref_conv_out_size, true), - reorder("out", "conv", {data_types::f32, format::bfzyx, ref_conv_out_size})); + reorder("out", "conv", { data_types::f32, format::bfzyx, ref_conv_out_size })); if (has_input_zp) topology.add(data(input_zp_prim_name[0], input_zp)); @@ -7413,9 +7281,9 @@ TEST_P(convolution_grouped_gpu, base) { build_options options; options.set_option(build_option::optimize_data(true)); - options.set_option(build_option::outputs({"conv", "out"})); - implementation_desc conv_impl = {input_data_format, impl_name}; - options.set_option(build_option::force_implementations({{"conv", conv_impl}})); + options.set_option(build_option::outputs({ "conv", "out" })); + implementation_desc conv_impl = { input_data_format, impl_name }; + options.set_option(build_option::force_implementations({ { "conv", conv_impl } })); cldnn::network network(engine, topology, options); network.set_input_data("input", input); @@ -7505,7 +7373,7 @@ TEST_P(convolution_general_gpu, conv_fp16_cases) { auto weights_size = tensor(output_f, input_f, filter_y, filter_x, 1); auto weights_data = generate_random_4d(output_f, input_f, filter_y, filter_x, -1, 1); auto weights_data_bfyx = flatten_4d(format::bfyx, weights_data); - auto weights_mem = engine.allocate_memory({data_types::f16, format::bfyx, weights_size}); + auto weights_mem = engine.allocate_memory({ data_types::f16, format::bfyx, weights_size }); set_values(weights_mem, weights_data_bfyx); // Will be used to store reference values calculated in branches depending on bias @@ -7516,7 +7384,7 @@ TEST_P(convolution_general_gpu, conv_fp16_cases) { if (with_bias) { auto biases_size = tensor(1, output_f, 1, 1); auto biases_data = generate_random_1d(output_f, -1, 1); - auto biases_mem = engine.allocate_memory({data_types::f16, format::bfyx, biases_size}); + auto biases_mem = engine.allocate_memory({ data_types::f16, format::bfyx, biases_size }); set_values(biases_mem, biases_data); for (auto bi = 0; bi < batch_num; ++bi) { @@ -7534,16 +7402,16 @@ TEST_P(convolution_general_gpu, conv_fp16_cases) { topology.add(input_layout("input", input_mem->get_layout()), data("weights_fsv", weights_mem), data("bias", biases_mem), - reorder("input_fsv", "input", {data_types::f16, input_data_format, input_size})); + reorder("input_fsv", "input", { data_types::f16, input_data_format, input_size })); auto conv_fsv = convolution("conv_fsv", "input_fsv", - {"weights_fsv"}, - {"bias"}, + { "weights_fsv" }, + { "bias" }, groups, - {1, 1, stride, stride}, - tensor{{0, 0, pad_x, pad_y}, 0}); - conv_fsv.output_padding = padding({0, 0, output_padding, output_padding}, 0.f); + { 1, 1, stride, stride }, + tensor{ { 0, 0, pad_x, pad_y }, 0 }); + conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); } else { @@ -7561,21 +7429,21 @@ TEST_P(convolution_general_gpu, conv_fp16_cases) { topology.add(input_layout("input", input_mem->get_layout()), data("weights_fsv", weights_mem), - reorder("input_fsv", "input", {data_types::f16, input_data_format, input_size})); + reorder("input_fsv", "input", { data_types::f16, input_data_format, input_size })); auto conv_fsv = convolution("conv_fsv", "input_fsv", - {"weights_fsv"}, + { "weights_fsv" }, groups, - {1, 1, stride, stride}, - tensor{{0, 0, pad_x, pad_y}, 0}); - conv_fsv.output_padding = padding({0, 0, output_padding, output_padding}, 0.f); + { 1, 1, stride, stride }, + tensor{ { 0, 0, pad_x, pad_y }, 0 }); + conv_fsv.output_padding = padding({ 0, 0, output_padding, output_padding }, 0.f); topology.add(conv_fsv); } build_options options; options.set_option(build_option::optimize_data(true)); - implementation_desc conv_impl = {input_data_format, impl_name}; - options.set_option(build_option::force_implementations({{"conv_fsv", conv_impl}})); + implementation_desc conv_impl = { input_data_format, impl_name }; + options.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -7668,10 +7536,10 @@ TEST_P(convolution_gpu_fsv16_to_bfyx, conv_b_fs_yx_fsv16_to_bfyx_padding) // Add convolution auto input_stride = tensor(1, 1, stride, stride); - auto pad = tensor({0, 0, pad_x, pad_y}, 0); + auto pad = tensor({ 0, 0, pad_x, pad_y }, 0); auto input_dilation = tensor(1, 1, 1, 1); - auto input_padding_before = tensor({0, 0, pad_x, pad_y}, 0); - auto input_padding_after = tensor({0, 0, pad_x, pad_y}, 0); + auto input_padding_before = tensor({ 0, 0, pad_x, pad_y }, 0); + auto input_padding_after = tensor({ 0, 0, pad_x, pad_y }, 0); auto conv_fsv = convolution("conv_fsv", "input_fsv16", { "weights_fsv" }, input_stride, pad, input_dilation, input_padding_before, input_padding_after); conv_fsv.output_padding = padding({ 0, 32, 2, 2 }, 0.f); @@ -7697,7 +7565,7 @@ TEST_P(convolution_gpu_fsv16_to_bfyx, conv_b_fs_yx_fsv16_to_bfyx_padding) // Exec target network (fusing: conv+reorder) build_options options_target; implementation_desc conv_impl = { format::b_fs_yx_fsv16, "convolution_gpu_bfyx_f16" }; - options_target.set_option(build_option::force_implementations({ {"conv_fsv", conv_impl} })); + options_target.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); options_target.set_option(build_option::optimize_data(true)); network network_target(engine, topology, options_target); @@ -7770,9 +7638,9 @@ TEST_P(convolution_gpu_fsv16_to_bfyx, conv_b_fs_yx_fsv16_to_bfyx_different_type) // Add convolution auto input_stride = tensor(1, 1, stride, stride); - auto pad = tensor({0, 0, pad_x, pad_y}, 0); + auto pad = tensor({ 0, 0, pad_x, pad_y }, 0); auto input_dilation = tensor(1, 1, 1, 1); - auto no_padding = tensor({0, 0, pad_x, pad_y}, 0); + auto no_padding = tensor({ 0, 0, pad_x, pad_y }, 0); auto conv_fsv = convolution("conv_fsv", "input_fsv16", { "weights_fsv" }, input_stride, pad, input_dilation, no_padding, no_padding); topology.add(conv_fsv); // format 8 to 8 -> after fusing, format 8 to 3 @@ -7796,7 +7664,7 @@ TEST_P(convolution_gpu_fsv16_to_bfyx, conv_b_fs_yx_fsv16_to_bfyx_different_type) // Exec target network (fusing: conv+reorder) build_options options_target; implementation_desc conv_impl = { format::b_fs_yx_fsv16, "convolution_gpu_bfyx_f16" }; - options_target.set_option(build_option::force_implementations({ {"conv_fsv", conv_impl} })); + options_target.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); options_target.set_option(build_option::optimize_data(true)); network network_target(engine, topology, options_target); @@ -7836,7 +7704,7 @@ public: auto wei_mem = engine.allocate_memory(wei_lay); auto weights_flat = flatten_4d(format::bfyx, _weights); set_values(wei_mem, weights_flat); - layout reordered_layout = layout{input_type(), input_format(), input_size(), padding_size()}; + layout reordered_layout = layout{ input_type(), input_format(), input_size(), padding_size() }; auto topo = topology(); topo.add(input_layout("input", input_lay)); topo.add(reorder("input_reorder", "input", reordered_layout)); @@ -7866,7 +7734,7 @@ public: { weights_id }, static_cast(groups()), tensor(batch(0), feature(0), spatial(_stride_x, _stride_y)), - tensor({0, 0, _offset_x, _offset_y}, 0), + tensor({ 0, 0, _offset_x, _offset_y }, 0), tensor(batch(0), feature(0), spatial(_dilation_x, _dilation_y))); conv_prim.output_data_type = output_type(); topo.add(conv_prim); @@ -7882,7 +7750,7 @@ public: { "bias" }, static_cast(groups()), tensor(batch(0), feature(0), spatial(_stride_x, _stride_y)), - tensor({0, 0, _offset_x, _offset_y}, 0), + tensor({ 0, 0, _offset_x, _offset_y }, 0), tensor(batch(0), feature(0), spatial(_dilation_x, _dilation_y))); conv_prim.output_data_type = output_type(); topo.add(conv_prim); @@ -7902,7 +7770,7 @@ public: auto build_opts = build_options( build_option::optimize_data(true), - build_option::force_implementations({ {"conv", {input_format(), ""}} }) + build_option::force_implementations({ { "conv", { input_format(), "" } } }) ); auto prog = program::build_program(engine, topo, build_opts); @@ -8201,7 +8069,7 @@ public: auto wei_mem = engine.allocate_memory(wei_lay); auto wei_flat = flatten_4d(format::bfyx, this->_weights); set_values(wei_mem, wei_flat); - layout reordered_layout = layout{this->input_type(), this->input_format(), this->input_size(), this->padding_size()}; + layout reordered_layout = layout{ this->input_type(), this->input_format(), this->input_size(), this->padding_size() }; auto topo = topology(); topo.add(input_layout("input", input_lay)); topo.add(reorder("input_reorder", "input", reordered_layout)); @@ -8231,7 +8099,7 @@ public: { weights_id }, static_cast(this->groups()), tensor(batch(0), feature(0), spatial(this->_stride_x, this->_stride_y)), - tensor({0,0, this->_offset_x, this->_offset_y}, 0), + tensor({ 0, 0, this->_offset_x, this->_offset_y }, 0), tensor(batch(0), feature(0), spatial(this->_dilation_x, this->_dilation_y))); conv_prim.output_data_type = this->output_type(); topo.add(conv_prim); @@ -8247,7 +8115,7 @@ public: { "bias" }, static_cast(this->groups()), tensor(batch(0), feature(0), spatial(this->_stride_x, this->_stride_y)), - tensor({0,0, this->_offset_x, this->_offset_y}, 0), + tensor({ 0, 0, this->_offset_x, this->_offset_y }, 0), tensor(batch(0), feature(0), spatial(this->_dilation_x, this->_dilation_y))); conv_prim.output_data_type = this->output_type(); topo.add(conv_prim); @@ -8262,7 +8130,7 @@ public: auto build_opts = build_options( build_option::optimize_data(true), - build_option::force_implementations({ {"conv", { this->input_format(), ""}} }) + build_option::force_implementations({ { "conv", { this->input_format(), "" } } }) ); auto prog = program::build_program(engine, topo, build_opts); @@ -8851,9 +8719,9 @@ TEST_P(convolution_test, CONVOLUTION) { } INSTANTIATE_TEST_SUITE_P(DISABLED_CONVOLUTION, - convolution_test, - ::testing::ValuesIn(convolution_test::generate_all_test_params()), - tests::generic_test::custom_param_name_functor()); + convolution_test, + ::testing::ValuesIn(convolution_test::generate_all_test_params()), + tests::generic_test::custom_param_name_functor()); #ifdef ENABLE_ONEDNN_FOR_GPU @@ -8952,7 +8820,7 @@ TEST_P(convolution_gpu_onednn, conv_onednn_cases) { auto weights_size = tensor(output_f, input_f, filter_y, filter_x, 1); auto weights_data = generate_random_4d(output_f, input_f, filter_y, filter_x, -1, 1); auto weights_data_bfyx = flatten_4d(format::bfyx, weights_data); - auto weights_mem = engine.allocate_memory({data_types::f16, format::bfyx, weights_size}); + auto weights_mem = engine.allocate_memory({ data_types::f16, format::bfyx, weights_size }); set_values(weights_mem, weights_data_bfyx); // Will be used to store reference values calculated in branches depending on bias @@ -8963,7 +8831,7 @@ TEST_P(convolution_gpu_onednn, conv_onednn_cases) { if (with_bias) { auto biases_size = tensor(1, output_f, 1, 1); auto biases_data = generate_random_1d(output_f, -1, 1); - auto biases_mem = engine.allocate_memory({data_types::f16, format::bfyx, biases_size}); + auto biases_mem = engine.allocate_memory({ data_types::f16, format::bfyx, biases_size }); set_values(biases_mem, biases_data); for (auto bi = 0; bi < batch_num; ++bi) { @@ -8981,16 +8849,16 @@ TEST_P(convolution_gpu_onednn, conv_onednn_cases) { topology.add(input_layout("input", input_mem->get_layout()), data("weights_fsv", weights_mem), data("bias", biases_mem), - reorder("input_fsv", "input", {data_types::f16, input_data_format, input_size})); + reorder("input_fsv", "input", { data_types::f16, input_data_format, input_size })); auto conv_fsv = convolution("conv_fsv", "input_fsv", - {"weights_fsv"}, - {"bias"}, + { "weights_fsv" }, + { "bias" }, groups, - {1, 1, stride, stride}, - {0, 0, 0, 0}); - conv_fsv.output_padding = padding({0, 0, 0, 0}, 0.f); + { 1, 1, stride, stride }, + { 0, 0, 0, 0 }); + conv_fsv.output_padding = padding({ 0, 0, 0, 0 }, 0.f); topology.add(conv_fsv); } else { @@ -9008,21 +8876,21 @@ TEST_P(convolution_gpu_onednn, conv_onednn_cases) { topology.add(input_layout("input", input_mem->get_layout()), data("weights_fsv", weights_mem), - reorder("input_fsv", "input", {data_types::f16, input_data_format, input_size})); + reorder("input_fsv", "input", { data_types::f16, input_data_format, input_size })); auto conv_fsv = convolution("conv_fsv", "input_fsv", - {"weights_fsv"}, + { "weights_fsv" }, groups, - {1, 1, stride, stride}, - {0, 0, 0, 0}); - conv_fsv.output_padding = padding({0, 0, 0, 0}, 0.f); + { 1, 1, stride, stride }, + { 0, 0, 0, 0 }); + conv_fsv.output_padding = padding({ 0, 0, 0, 0 }, 0.f); topology.add(conv_fsv); } build_options options; options.set_option(build_option::optimize_data(true)); - implementation_desc conv_impl = {input_data_format, impl_name, prim_impl_types}; - options.set_option(build_option::force_implementations({{"conv_fsv", conv_impl}})); + implementation_desc conv_impl = { input_data_format, impl_name, prim_impl_types }; + options.set_option(build_option::force_implementations({ { "conv_fsv", conv_impl } })); network network(engine, topology, options); network.set_input_data("input", input_mem); @@ -9032,7 +8900,7 @@ TEST_P(convolution_gpu_onednn, conv_onednn_cases) { std::cerr << p.original_id << " " << p.kernel_id << std::endl; auto out_mem = network.get_output("conv_fsv").get_memory(); - mem_lock out_ptr{out_mem, get_test_stream()}; + mem_lock out_ptr{ out_mem, get_test_stream() }; auto out_lay = out_mem->get_layout(); ASSERT_EQ(out_mem->get_layout().format, input_data_format); @@ -9075,15 +8943,15 @@ TEST(convolution_gpu_onednn, padding_for_cldnn_kernel_after_onednn) { auto weights_size = tensor(16, 16, 1, 1, 1); auto weights_data = generate_random_4d(output_f, input_f, 1, 1, -1, 1); auto weights_data_bfyx = flatten_4d(format::bfyx, weights_data); - auto weights_mem = engine.allocate_memory({data_types::f16, format::bfyx, weights_size}); + auto weights_mem = engine.allocate_memory({ data_types::f16, format::bfyx, weights_size }); set_values(weights_mem, weights_data_bfyx); auto input = input_layout("input", input_mem->get_layout()); auto weights = data("weights", weights_mem); - auto input_reorder = reorder("input_fsv", "input", {data_types::f16, format::b_fs_yx_fsv16, input_size}); + auto input_reorder = reorder("input_fsv", "input", { data_types::f16, format::b_fs_yx_fsv16, input_size }); auto conv1 = convolution("conv1", "input_fsv", { "weights" }); - auto conv2 = convolution("conv2", "conv1", { "weights" }, {1, 1, 1, 1}, {0, 0, -1, -1}, {1, 1, 1, 1}, {output_b, output_f, output_x, output_x}); - auto output_reorder = reorder("reorder", "conv2", {data_types::f32, format::bfyx, {output_b, output_f, output_x, output_x}}); + auto conv2 = convolution("conv2", "conv1", { "weights" }, { 1, 1, 1, 1 }, { 0, 0, -1, -1 }, { 1, 1, 1, 1 }, { output_b, output_f, output_x, output_x }); + auto output_reorder = reorder("reorder", "conv2", { data_types::f32, format::bfyx, { output_b, output_f, output_x, output_x } }); topology topology_test(input, weights, input_reorder, conv1, conv2, output_reorder); topology topology_ref(input, weights, input_reorder, conv1, conv2, output_reorder); @@ -9091,13 +8959,13 @@ TEST(convolution_gpu_onednn, padding_for_cldnn_kernel_after_onednn) { build_options options_test; implementation_desc conv1_impl_test = { format::b_fs_yx_fsv16, "", impl_types::onednn }; implementation_desc conv2_impl_test = { format::b_fs_yx_fsv16, "convolution_gpu_bfyx_f16", impl_types::ocl }; - options_test.set_option(build_option::force_implementations({ {"conv1", conv1_impl_test}, {"conv2", conv2_impl_test} })); + options_test.set_option(build_option::force_implementations({ { "conv1", conv1_impl_test }, { "conv2", conv2_impl_test } })); options_test.set_option(build_option::optimize_data(true)); build_options options_ref; implementation_desc conv1_impl_ref = { format::bfyx, "", impl_types::ocl }; implementation_desc conv2_impl_ref = { format::bfyx, "", impl_types::ocl }; - options_ref.set_option(build_option::force_implementations({ {"conv1", conv1_impl_ref}, {"conv2", conv2_impl_ref} })); + options_ref.set_option(build_option::force_implementations({ { "conv1", conv1_impl_ref }, { "conv2", conv2_impl_ref } })); options_ref.set_option(build_option::optimize_data(true)); network network_test(engine, topology_test, options_test); diff --git a/inference-engine/thirdparty/clDNN/tests/test_cases/fusings_gpu_test.cpp b/inference-engine/thirdparty/clDNN/tests/test_cases/fusings_gpu_test.cpp index 957ca159a0a..48c42e4eae5 100644 --- a/inference-engine/thirdparty/clDNN/tests/test_cases/fusings_gpu_test.cpp +++ b/inference-engine/thirdparty/clDNN/tests/test_cases/fusings_gpu_test.cpp @@ -608,6 +608,7 @@ public: #define CASE_FC_U8S8_3D_1 {2, 32, 1, 3}, {2, 32, 1, 16}, {16, 3, 1, 1}, tensor{1}, tensor{0}, tensor{1}, 1, data_types::u8, format::bfyx, data_types::i8, format::oiyx, data_types::f32, format::bfyx #define CASE_FC_U8S8_3D_2 {1, 1, 1, 3}, {1, 1, 1, 32}, {32, 3, 1, 1}, tensor{1}, tensor{0}, tensor{1}, 1, data_types::u8, format::bfyx, data_types::i8, format::oiyx, data_types::f32, format::bfyx #define CASE_FC_U8S8_3D_3 {2, 3, 1, 1}, {2, 3, 1, 15}, {15, 1, 1, 1}, tensor{1}, tensor{0}, tensor{1}, 1, data_types::u8, format::bfyx, data_types::i8, format::oiyx, data_types::f32, format::bfyx +#define CASE_FC_U8S8_3D_4 {1, 512, 1, 1024}, {1, 384, 1, 1024}, {1024, 1024, 1, 1}, tensor{1}, tensor{0}, tensor{1}, 1, data_types::u8, format::bfyx, data_types::i8, format::oiyx, data_types::f32, format::bfyx #define CASE_NORMALIZE_I8_1 {1, 2, 3, 3}, data_types::u8, format::bfyx, data_types::f32, format::bfyx @@ -681,7 +682,7 @@ TEST_P(conv_fp32_reorder_fsv16_to_bfyx_conv, basic) { reorder("reorder_fsv16", "input", format::b_fs_yx_fsv16, data_types::f32), convolution("conv_prim", "reorder_fsv16", { "weights" }, p.groups, p.stride, p.pad, p.dilation), reorder("reorder_bfyx", "conv_prim", format::bfyx, data_types::f32), - convolution("conv_output", "reorder_bfyx", { "weights_dw" }, 1, dw_stride, p.pad, p.dilation), + convolution("conv_output", "reorder_bfyx", { "weights_dw" }, p.out_shape.feature[0], dw_stride, p.pad, p.dilation), activation("activation", "conv_output", activation_func::abs), reorder("reorder_output", "activation", p.default_format, data_types::f32) ); @@ -3264,6 +3265,35 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, gemm_2in_quantize_u8, //gemm_test_params{ CASE_GEMM_2IN_FP32_1, 3, 4 }, })); +class gemm_2in_quantize_float_in : public GemmFusingTest {}; +TEST_P(gemm_2in_quantize_float_in, basic) { + auto p = GetParam(); + create_topologies(input_layout("input0", get_input_layout(p, 0)), + input_layout("input1", get_input_layout(p, 1)), + data("in_lo", get_mem(get_per_channel_layout(p), 0)), + data("in_hi", get_mem(get_per_channel_layout(p), 1, max_random)), + data("out_lo", get_mem(get_single_element_layout(p), 0)), + data("out_hi", get_mem(get_single_element_layout(p), 255)), + gemm("gemm_prim", { "input0", "input1" }, data_types::f32), + quantize("quantize", "gemm_prim", "in_lo", "in_hi", "out_lo", "out_hi", 256, data_types::u8), + reorder("reorder_bfyx", "quantize", p.default_format, data_types::f32) + ); + + implementation_desc gemm_impl = { format::bfyx, "gemm_tiled_opt" }; + bo_fused.set_option(build_option::force_implementations({ {"gemm_prim", gemm_impl} })); + + tolerance = 1.0f; + execute(p); +} + +INSTANTIATE_TEST_SUITE_P(fusings_gpu, gemm_2in_quantize_float_in, + ::testing::ValuesIn(std::vector{ + gemm_test_params{ CASE_GEMM_2IN_FP16_1, 3, 4 }, + gemm_test_params{ CASE_GEMM_2IN_FP32_1, 3, 4 }, + gemm_test_params{ CASE_GEMM_ELTWISE_2IN_FP16_1, 3, 4 }, + gemm_test_params{ CASE_GEMM_ELTWISE_2IN_FP32_1, 3, 4 }, +})); + class gemm_2in_scale : public GemmFusingTest {}; TEST_P(gemm_2in_scale, basic) { auto p = GetParam(); @@ -9229,7 +9259,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, gather_elements_activation_scale_eltwise, })); #ifdef ENABLE_ONEDNN_FOR_GPU -class ConvFusingTestOneDNN : public WeightsPrimitiveFusingTest { +class WeightsPrimitiveFusingTestOneDNN : public WeightsPrimitiveFusingTest { public: void execute(bc_test_params& p) { // Onednn post operation has issue in a machine that does not support imad. @@ -9270,7 +9300,7 @@ public: } }; -class conv_int8_eltwise_onednn : public ConvFusingTestOneDNN {}; +class conv_int8_eltwise_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_int8_eltwise_onednn, u8_eltwise_sum_out) { auto p = GetParam(); @@ -9335,7 +9365,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_int8_eltwise_onednn, bc_test_params{CASE_CONV3D_S8S8_5, 3, 4}, })); -class conv_fp32_activation_abs_onednn : public ConvFusingTestOneDNN {}; +class conv_fp32_activation_abs_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_fp32_activation_abs_onednn, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9358,7 +9388,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_fp32_activation_abs_onednn, bc_test_params{CASE_CONV_FP16_4, 2, 3}, })); -class conv_fp32_activation_mish_onednn : public ConvFusingTestOneDNN {}; +class conv_fp32_activation_mish_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_fp32_activation_mish_onednn, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9381,7 +9411,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_fp32_activation_mish_onednn, bc_test_params{CASE_CONV_FP16_4, 2, 3}, })); -class conv_fp32_activation_swish_onednn : public ConvFusingTestOneDNN {}; +class conv_fp32_activation_swish_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_fp32_activation_swish_onednn, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9404,7 +9434,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_fp32_activation_swish_onednn, bc_test_params{CASE_CONV_FP16_4, 2, 3}, })); -class conv_fp32_activation_hswish_onednn : public ConvFusingTestOneDNN {}; +class conv_fp32_activation_hswish_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_fp32_activation_hswish_onednn, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9427,7 +9457,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_fp32_activation_hswish_onednn, bc_test_params{CASE_CONV_FP16_4, 2, 3}, })); -class conv_fp32_activation_exp_onednn : public ConvFusingTestOneDNN {}; +class conv_fp32_activation_exp_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_fp32_activation_exp_onednn, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9450,7 +9480,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_fp32_activation_exp_onednn, bc_test_params{CASE_CONV_FP16_4, 2, 3}, })); -class conv_int8_quantize_u8_onednn : public ConvFusingTestOneDNN {}; +class conv_int8_quantize_u8_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_int8_quantize_u8_onednn, per_channel) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9497,7 +9527,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_int8_quantize_u8_onednn, bc_test_params{CASE_CONV_S8S8_3, 2, 3}, })); -class conv_int8_activation_eltwise_quantize_onednn : public ConvFusingTestOneDNN {}; +class conv_int8_activation_eltwise_quantize_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_int8_activation_eltwise_quantize_onednn, bsv32_fsv32) { auto p = GetParam(); layout eltwise_layout = get_output_layout(p); @@ -9549,7 +9579,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_int8_activation_eltwise_quantize_oned bc_test_params{CASE_CONV_S8S8_15, 2, 5}, })); -class conv_int8_scale_shift_swish_onednn : public ConvFusingTestOneDNN {}; +class conv_int8_scale_shift_swish_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_int8_scale_shift_swish_onednn, bsv32_fsv32) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9588,7 +9618,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_int8_scale_shift_swish_onednn, bc_test_params{CASE_CONV_S8S8_15, 2, 7}, })); -class conv_int8_eltwise_scale_onednn : public ConvFusingTestOneDNN {}; +class conv_int8_eltwise_scale_onednn : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(conv_int8_eltwise_scale_onednn, u8_eltwise_prod_out_reuse) { auto p = GetParam(); @@ -9638,7 +9668,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, conv_int8_eltwise_scale_onednn, // Limitations: no // DNNL_VERBOSE log without optimization: attr-post-ops:eltwise_linear:12.75:127.5+eltwise_linear:1:-128 // DNNL_VERBOSE log with optimization: attr-post-ops:eltwise_linear:12.75:-0.5 -class post_ops_optimizations_onednn_eltw_linear_eltw_linear : public ConvFusingTestOneDNN {}; +class post_ops_optimizations_onednn_eltw_linear_eltw_linear : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(post_ops_optimizations_onednn_eltw_linear_eltw_linear, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9689,7 +9719,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, post_ops_optimizations_onednn_eltw_linear_ // Limitations: beta = 0 in eltw_linear // DNNL_VERBOSE log without optimization: attr-post-ops:eltwise_linear:12.75:127.5+eltwise_round+eltwise_linear:2.00784+eltwise_clip:0:512 // DNNL_VERBOSE log with optimization: attr-post-ops:eltwise_linear:12.75:127.5+eltwise_round:0:0:2.00784+eltwise_clip:0:512 -class post_ops_optimizations_onednn_eltw_non_linear_eltw_linear : public ConvFusingTestOneDNN {}; +class post_ops_optimizations_onednn_eltw_non_linear_eltw_linear : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(post_ops_optimizations_onednn_eltw_non_linear_eltw_linear, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9740,7 +9770,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, post_ops_optimizations_onednn_eltw_non_lin // Limitations: alpha = 1 and scale = 1 in eltw_linear; binary_add is a constant compile-time buffer // DNNL_VERBOSE log without optimization: attr-oscale:2 attr-post-ops:binary_add:f32:2+eltwise_linear:1:-127+eltwise_clip:-127:127 // DNNL_VERBOSE log with optimization: attr-oscale:2 attr-post-ops:binary_add:f32:2+eltwise_clip:-127:127 -class post_ops_optimizations_onednn_binary_add_eltw_linear : public ConvFusingTestOneDNN {}; +class post_ops_optimizations_onednn_binary_add_eltw_linear : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(post_ops_optimizations_onednn_binary_add_eltw_linear, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9791,7 +9821,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, post_ops_optimizations_onednn_binary_add_e // Limitations: beta = 0 in eltw_linear; binary_mul is a constant compile-time buffer // DNNL_VERBOSE log without optimization: attr-oscale:2 attr-post-ops:binary_mul:f32:2+eltwise_linear:2.01575+eltwise_clip:0:512 // DNNL_VERBOSE log with optimization: attr-oscale:2 attr-post-ops:binary_mul:f32:2+eltwise_clip:0:512 -class post_ops_optimizations_onednn_binary_mul_eltw_linear : public ConvFusingTestOneDNN {}; +class post_ops_optimizations_onednn_binary_mul_eltw_linear : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(post_ops_optimizations_onednn_binary_mul_eltw_linear, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9842,7 +9872,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, post_ops_optimizations_onednn_binary_mul_e // Limitations: beta = 0 in eltw_linear // DNNL_VERBOSE log without optimization: attr-oscale:2 attr-post-ops:eltwise_linear:2.01575+eltwise_clip:0:512 // DNNL_VERBOSE log with optimization: attr-oscale:2 attr-post-ops:eltwise_clip:0:512 -class post_ops_optimizations_onednn_oscale_eltw_linear : public ConvFusingTestOneDNN {}; +class post_ops_optimizations_onednn_oscale_eltw_linear : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(post_ops_optimizations_onednn_oscale_eltw_linear, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9891,7 +9921,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, post_ops_optimizations_onednn_oscale_eltw_ // Limitations: beta = 0 in eltw_linear // DNNL_VERBOSE log without optimization: attr-post-ops:eltwise_relu+sum:1:0:u8+eltwise_linear:12.7+eltwise_clip:0:127 // DNNL_VERBOSE log with optimization: attr-post-ops:eltwise_relu:0:0:12.7+sum:12.7:0:u8+eltwise_clip:0:127 -class post_ops_optimizations_onednn_eltw_any_sum_eltw_linear : public ConvFusingTestOneDNN {}; +class post_ops_optimizations_onednn_eltw_any_sum_eltw_linear : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(post_ops_optimizations_onednn_eltw_any_sum_eltw_linear, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9941,7 +9971,7 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, post_ops_optimizations_onednn_eltw_any_sum // Input range uses in 2 cases: not per-tensor output range or out_lo > out_hi // Here's out_lo > out_hi and no optimizations // DNNL_VERBOSE log: attr-post-ops:eltwise_linear:12.75:127.5+eltwise_round+eltwise_linear:-1:127 -class post_ops_optimizations_input_range : public ConvFusingTestOneDNN {}; +class post_ops_optimizations_input_range : public WeightsPrimitiveFusingTestOneDNN {}; TEST_P(post_ops_optimizations_input_range, basic) { auto p = GetParam(); create_topologies(input_layout("input", get_input_layout(p)), @@ -9986,6 +10016,33 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, post_ops_optimizations_input_range, bc_test_params{CASE_CONV_S8S8_14, 2, 3}, bc_test_params{CASE_CONV_S8S8_15, 2, 3}, })); + +class fc_int8_inputs_fused_fp32_sum : public WeightsPrimitiveFusingTestOneDNN {}; +TEST_P(fc_int8_inputs_fused_fp32_sum, basic) { + auto p = GetParam(); + auto shift_layout = layout{ p.default_type, p.default_format, tensor{1, 1, 1, p.kernel.batch[0]} }; + + create_topologies(input_layout("input", get_input_layout(p)), + data("weights", get_mem(get_fc_weights_layout(p))), + data("bias", get_mem(get_fc_bias_layout(p))), + data("shift_data", get_mem(shift_layout, 1)), + fully_connected("fc_prim", "input", "weights", "bias", cldnn::data_types::f32, "", padding(), get_fc_output_dim_size(p)), + eltwise("shift", {"fc_prim", "shift_data"}, eltwise_mode::sum, cldnn::data_types::f32), + crop("crop", "shift", get_output_layout(p).size, {0, 0, 0, 0}), + reorder("reorder_bfyx", "crop", p.default_format, data_types::f32) + ); + + tolerance = 1e-5f; + execute(p); +} + +INSTANTIATE_TEST_SUITE_P(fusings_gpu, fc_int8_inputs_fused_fp32_sum, ::testing::ValuesIn(std::vector{ + // OneDNN has issue with small shapes - ticket 7064 + // bc_test_params{ CASE_FC_U8S8_3D_1, 2, 4 }, + // bc_test_params{ CASE_FC_U8S8_3D_2, 2, 4 }, + bc_test_params{ CASE_FC_U8S8_3D_4, 2, 4 }, + +})); #endif @@ -10059,7 +10116,7 @@ TEST_P(conv_fp32_reorder_bfyx_to_fsv32_conv_subtract, have_subtract_per_feature) data("weights_dw", get_mem(dw_weights_layout, -127, 127)), convolution("conv_prim", "input", { "weights" }, p.groups, p.stride, p.pad, p.dilation), reorder("reorder_fsv32", "conv_prim", format::fs_b_yx_fsv32, data_types::f32, values_to_subtract), - convolution("conv_output", "reorder_fsv32", { "weights_dw" }, 1, dw_stride, p.pad, p.dilation), + convolution("conv_output", "reorder_fsv32", { "weights_dw" }, p.out_shape.feature[0], dw_stride, p.pad, p.dilation), activation("activation", "conv_output", activation_func::abs) ); @@ -10088,7 +10145,7 @@ TEST_P(conv_fp32_reorder_bfyx_to_fsv32_conv_fused_activation, have_fused_activat convolution("conv_prim", "input", { "weights" }, p.groups, p.stride, p.pad, p.dilation), reorder("reorder_fsv32", "conv_prim", format::fs_b_yx_fsv32, data_types::f32), activation("activation_quantize", "reorder_fsv32", activation_func::relu), - convolution("conv_output", "activation_quantize", { "weights_dw" }, 1, dw_stride, p.pad, p.dilation), + convolution("conv_output", "activation_quantize", { "weights_dw" }, p.out_shape.feature[0], dw_stride, p.pad, p.dilation), activation("activation", "conv_output", activation_func::abs) ); @@ -10116,7 +10173,7 @@ TEST_P(conv_fp32_reorder_bfyx_to_fsv32_conv_data_padding, have_data_padding) { data("weights_dw", get_mem(dw_weights_layout, -127, 127)), convolution("conv_prim", "input", { "weights" }, p.groups, p.stride, p.pad, p.dilation), reorder("reorder_fsv32", "conv_prim", layout(data_types::f32, format::fs_b_yx_fsv32, dw_tensor, padding{ {0, 0, 1, 1}, 0 })), - convolution("conv_output", "reorder_fsv32", { "weights_dw" }, 1, dw_stride, p.pad, p.dilation), + convolution("conv_output", "reorder_fsv32", { "weights_dw" }, p.out_shape.feature[0], dw_stride, p.pad, p.dilation), activation("activation", "conv_output", activation_func::abs), activation("activation2", "conv_prim", activation_func::abs), eltwise("add_bias", { "activation", "activation2" }, eltwise_mode::sum) diff --git a/inference-engine/thirdparty/clDNN/tests/test_cases/memory_test.cpp b/inference-engine/thirdparty/clDNN/tests/test_cases/memory_test.cpp index d1c76a316c4..642fb65f603 100644 --- a/inference-engine/thirdparty/clDNN/tests/test_cases/memory_test.cpp +++ b/inference-engine/thirdparty/clDNN/tests/test_cases/memory_test.cpp @@ -43,7 +43,7 @@ TEST(memory_tests, DISABLED_network_creation_loop) { engine eng; - memory in = memory::allocate(eng, layout{ data_types::f32, format::bfyx,{ 1, 1, 1000, 1000 } }); + memory in = memory::allocate(eng, layout{ data_types::f32, format::bfyx, { 1, 1, 1000, 1000 } }); topology tpl{ input_layout("in", in->get_layout()), @@ -66,7 +66,7 @@ TEST(memory_pool, basic_non_padded_relu_pipe) { auto x_size = 1; auto y_size = 1; - auto input = engine->allocate_memory({ data_types::f32, format::bfyx,{ tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); + auto input = engine->allocate_memory({ data_types::f32, format::bfyx, { tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); topology topology; topology.add(input_layout("input", input->get_layout())); @@ -86,7 +86,7 @@ TEST(memory_pool, basic_non_padded_relu_pipe) { network.set_input_data("input", input); auto outputs = network.execute(); - EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t) 64); + EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t)64); } TEST(memory_pool, basic_non_padded_relu_and_pooling_pipe) { @@ -99,13 +99,13 @@ TEST(memory_pool, basic_non_padded_relu_and_pooling_pipe) { auto x_size = 4; auto y_size = 4; - auto input = engine->allocate_memory({ data_types::f32, format::bfyx,{ tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); + auto input = engine->allocate_memory({ data_types::f32, format::bfyx, { tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); topology topology; topology.add(input_layout("input", input->get_layout())); topology.add(activation("relu", "input", activation_func::relu)); topology.add(activation("relu1", "relu", activation_func::relu)); - topology.add(pooling("pool1", "relu1",pooling_mode::max, { 1,1,3,3 }, { 1,1,2,2 })); + topology.add(pooling("pool1", "relu1", pooling_mode::max, { 1, 1, 3, 3 }, { 1, 1, 2, 2 })); topology.add(activation("relu2", "pool1", activation_func::relu)); topology.add(activation("relu3", "relu2", activation_func::relu)); topology.add(activation("relu4", "relu3", activation_func::relu)); @@ -133,7 +133,7 @@ TEST(memory_pool, multi_outputs_network) { auto x_size = 4; auto y_size = 4; - auto input = engine->allocate_memory({ data_types::f32, format::bfyx,{ tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); + auto input = engine->allocate_memory({ data_types::f32, format::bfyx, { tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); topology topology; topology.add(input_layout("input", input->get_layout())); @@ -153,7 +153,7 @@ TEST(memory_pool, multi_outputs_network) { network.set_input_data("input", input); auto outputs = network.execute(); - EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t)1536); + EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t) 1536); } TEST(memory_pool, oooq) { @@ -171,14 +171,14 @@ TEST(memory_pool, oooq) { auto x_size = 4; auto y_size = 4; - auto input = engine->allocate_memory({ data_types::f32, format::bfyx,{ tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); + auto input = engine->allocate_memory({ data_types::f32, format::bfyx, { tensor(spatial(x_size, y_size), feature(feature_num), batch(batch_num)) } }); topology topology; topology.add(input_layout("input", input->get_layout())); topology.add(activation("relu1", "input", activation_func::relu)); topology.add(activation("relu2", "input", activation_func::relu)); topology.add(activation("relu3", "input", activation_func::relu)); - topology.add(concatenation("concat1", { "relu1", "relu2"},concatenation::along_f)); + topology.add(concatenation("concat1", { "relu1", "relu2" },concatenation::along_f)); topology.add(activation("relu4", "concat1", activation_func::relu)); topology.add(activation("relu5", "relu3", activation_func::relu)); topology.add(concatenation("concat2", { "relu4", "relu5" }, concatenation::along_f)); @@ -209,7 +209,7 @@ TEST(memory_pool, DISABLED_shared_mem_pool_same_topology_twice) { auto inp_x_size = 4; auto inp_y_size = 4; - auto input = engine->allocate_memory({ data_types::f32, format::bfyx,{ tensor(spatial(inp_x_size, inp_y_size), feature(feature_num), batch(batch_num)) } }); + auto input = engine->allocate_memory({ data_types::f32, format::bfyx, { tensor(spatial(inp_x_size, inp_y_size), feature(feature_num), batch(batch_num)) } }); set_values(input, { 1.0f, 2.5f, 3.0f, 4.0f, 5.0f, 2.0f, 2.0f, 3.0f, 6.1f, 4.7f, 1.0f, 1.0f, 8.2f, 1.0f, 2.0f, 1.0f, @@ -227,7 +227,7 @@ TEST(memory_pool, DISABLED_shared_mem_pool_same_topology_twice) { topology.add(activation("relu4", "concat1", activation_func::relu)); topology.add(activation("relu5", "relu3", activation_func::relu)); topology.add(concatenation("concat2", { "relu4", "relu5" }, concatenation::along_f)); - topology.add(activation("relu6", "concat2", activation_func::linear, {1.0f, 0.5f})); + topology.add(activation("relu6", "concat2", activation_func::linear, { 1.0f, 0.5f })); build_options bo; bo.set_option(build_option::optimize_data(true)); @@ -286,8 +286,8 @@ TEST(memory_pool, DISABLED_shared_mem_pool_same_topology_twice_weights) { auto inp_x_size = 4; auto inp_y_size = 4; - auto input= engine->allocate_memory({ data_types::f32, format::bfyx,{ tensor(spatial(inp_x_size, inp_y_size), feature(feature_num), batch(batch_num)) } }); - auto weights = engine->allocate_memory({ data_types::f32,format::bfyx,{ 1, 1, 3, 2 } }); + auto input= engine->allocate_memory({ data_types::f32, format::bfyx, { tensor(spatial(inp_x_size, inp_y_size), feature(feature_num), batch(batch_num)) } }); + auto weights = engine->allocate_memory({ data_types::f32, format::bfyx, { 1, 1, 3, 2 } }); std::vector dummy_input_data_1 = { /*f0 xy*/ 0.8f, 0.65f, 0.1f, 1.0f, 1.0f, 0.5f, 0.11f, 0.33f, 0.66f, 0.11f, 0.22f, 0.33f, 0.99f, 0.8f, 0.7f, 0.5f, @@ -373,10 +373,10 @@ TEST(memory_pool, shared_mem_pool_diff_batches) { layout lay_batch_8 = { dt, fmt, { tensor(spatial(inp_x_size, inp_y_size), feature(feature_num), batch(batch_8)) }}; auto input_1 = engine->allocate_memory(lay_batch_1); auto input_8 = engine->allocate_memory(lay_batch_8); - auto weights = engine->allocate_memory({ dt, fmt, { 1, 1, 3, 2 } }); + auto weights = engine->allocate_memory({ dt, fmt, { 1, 3, 3, 2 } }); - std::vector dummy_input_data_1 = generate_random_1d(batch_1*feature_num*inp_x_size*inp_y_size, 0, 1); - std::vector dummy_input_data_8 = generate_random_1d(batch_8*feature_num*inp_x_size*inp_y_size, 0, 1); + std::vector dummy_input_data_1 = generate_random_1d(batch_1 * feature_num * inp_x_size * inp_y_size, 0, 1); + std::vector dummy_input_data_8 = generate_random_1d(batch_8 * feature_num * inp_x_size * inp_y_size, 0, 1); set_values(input_1, dummy_input_data_1); set_values(input_8, dummy_input_data_8); @@ -396,14 +396,14 @@ TEST(memory_pool, shared_mem_pool_diff_batches) { auto outputs = network_first.execute(); auto dev_info = engine->get_device_info(); - EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t)3928); + EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t) 4744); topo.change_input_layout("input", input_1->get_layout());//change input layout to batch=1 network network_second(*engine, topo, bo); network_second.set_input_data("input", input_1); auto outputs_second = network_second.execute(); - EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t)4328); + EXPECT_EQ(engine->get_max_used_device_memory(), (uint64_t) 5912); } TEST(memory_pool, shared_dep_two_output) { @@ -459,20 +459,20 @@ TEST(memory_pool, non_opt_intermidate_opt_after) { auto input_memory1 = engine.allocate_memory(input_layout1); auto input_memory2 = engine.allocate_memory(input_layout2); - auto scale_memory = engine.allocate_memory(layout(cldnn::data_types::f32, cldnn::format::bfyx, { 1,1,1,1 })); + auto scale_memory = engine.allocate_memory(layout(cldnn::data_types::f32, cldnn::format::bfyx, { 1, 1, 1, 1 })); auto data_memory = cldnn::data("scale_mem", scale_memory); set_values(input_memory1, { 1.0f, 2.0f, 3.0f, 4.0f }); set_values(input_memory2, { 5.0f, 6.0f, 7.0f, 8.0f }); - set_values(scale_memory, { 1.0f}); + set_values(scale_memory, { 1.0f }); auto reshape_tensor = cldnn::tensor(8, 1, 1, 1); auto input = cldnn::input_layout("input1", input_layout1); auto input2 = cldnn::input_layout("input2", input_layout2); auto concat = cldnn::concatenation("concat", { "input1", "input2" }, cldnn::concatenation::along_b); auto reshape = cldnn::reshape("reshape", "concat", reshape_tensor); - auto crop1 = cldnn::crop("crop1", "reshape", { 1,1,1,1 }, { 0, 0, 0, 0 }); - auto crop2 = cldnn::crop("crop2", "reshape", { 1,1,1,1 }, { 1, 0, 0, 0 }); + auto crop1 = cldnn::crop("crop1", "reshape", { 1, 1, 1, 1 }, { 0, 0, 0, 0 }); + auto crop2 = cldnn::crop("crop2", "reshape", { 1, 1, 1, 1 }, { 1, 0, 0, 0 }); auto eltwise1 = cldnn::scale("elt1", "crop1", "scale_mem"); auto eltwise2 = cldnn::scale("elt2", "crop2", "scale_mem"); @@ -508,7 +508,7 @@ TEST(memory_pool, add_mem_dep_test) { auto input_layout1 = layout(cldnn::data_types::f32, cldnn::format::bfyx, { 1, 2, 2, 2 }); auto input_memory1 = engine.allocate_memory(input_layout1); - auto scale_memory = engine.allocate_memory(layout(cldnn::data_types::f32, cldnn::format::bfyx, { 1,1,1,1 })); + auto scale_memory = engine.allocate_memory(layout(cldnn::data_types::f32, cldnn::format::bfyx, { 1, 1, 1, 1 })); auto data_memory = cldnn::data("scale_mem", scale_memory); set_values(input_memory1, { 1.0f, 2.0f, 3.0f, 4.0f, @@ -518,8 +518,8 @@ TEST(memory_pool, add_mem_dep_test) { auto input = cldnn::input_layout("input1", input_layout1); auto actv1 = cldnn::activation("input_activ1", "input1", activation_func::abs); auto actv2 = cldnn::activation("input_activ2", "input1", activation_func::abs); - auto crop1 = cldnn::crop("crop1", "input_activ1", { 1,1,2,2 }, { 0, 0, 0, 0 }); - auto crop2 = cldnn::crop("crop2", "input_activ2", { 1,1,2,2 }, { 0, 1, 0, 0 }); + auto crop1 = cldnn::crop("crop1", "input_activ1", { 1, 1, 2, 2 }, { 0, 0, 0, 0 }); + auto crop2 = cldnn::crop("crop2", "input_activ2", { 1, 1, 2, 2 }, { 0, 1, 0, 0 }); auto eltwise1 = cldnn::scale("elt1", "crop1", "scale_mem"); auto eltwise2 = cldnn::scale("elt2", "crop2", "scale_mem"); auto actv3 = cldnn::activation("out3", "elt1", activation_func::abs); diff --git a/inference-engine/thirdparty/clDNN/tests/test_cases/slice.cpp b/inference-engine/thirdparty/clDNN/tests/test_cases/slice.cpp new file mode 100644 index 00000000000..5b1aa017ccc --- /dev/null +++ b/inference-engine/thirdparty/clDNN/tests/test_cases/slice.cpp @@ -0,0 +1,144 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#include "test_utils.h" + +#include +#include +#include + +#include +#include +#include + +using namespace cldnn; +using namespace ::tests; + +namespace { + +template +class SliceTest : public ::testing::Test { +public: + static std::vector GenInput(int size) { + std::vector result; + for (int i = 0; i < size; i++) + result.push_back(i); + return result; + } + + void TearDown() override { + assert(input_shape_.size() == 4 || input_shape_.size() == 5); + format input_format = input_shape_.size() == 4 ? format::bfyx : format::bfzyx; + layout data_layout ( input_type_, input_format, tensor{input_shape_} ); + std::vector input_vals = GenInput(data_layout.get_linear_size()); + memory::ptr input = engine_.allocate_memory(data_layout); + set_values(input, input_vals); + topology topology; + topology.add(input_layout("input", input->get_layout())); + topology.add(data("start", start_)); + topology.add(data("stop", stop_)); + topology.add(data("step", step_)); + std::vector inputs {"input", "start", "stop", "step"}; + if (axes_) { + topology.add(data("axes", axes_)); + inputs.push_back("axes"); + } + topology.add(slice("slice", inputs, tensor{output_shape_})); + + network network(engine_, topology); + + network.set_input_data("input", input); + + auto outputs = network.execute(); + + EXPECT_EQ(outputs.size(), size_t(1)); + EXPECT_EQ(outputs.begin()->first, "slice"); + + auto output = outputs.at("slice").get_memory(); + + cldnn::mem_lock output_ptr(output, get_test_stream()); + + ASSERT_EQ(output_ptr.size(), expected_output_.size()); + for (size_t i = 0; i < output_ptr.size(); ++i) + EXPECT_TRUE(are_equal(expected_output_[i], output_ptr[i], 2e-3)); + } + + data_types DataType() const; + +protected: + engine& engine_ = get_test_engine(); + std::vector input_shape_; + data_types input_type_ {DataType()}; + memory::ptr start_; + memory::ptr stop_; + memory::ptr step_; + memory::ptr axes_; + std::vector output_shape_; + std::vector expected_output_; +}; + +template<> +data_types SliceTest::DataType() const {return data_types::f32;} + +template<> +data_types SliceTest::DataType() const { return data_types::i32; } + +template<> +data_types SliceTest::DataType() const { return data_types::i64; } + +using testing::Types; +typedef Types DataTypes; +TYPED_TEST_SUITE(SliceTest, DataTypes); + +TYPED_TEST(SliceTest, bfyx_positive_step) { + this->input_shape_ = { 1, 2, 100, 12 }; + this->start_ = this->engine_.allocate_memory({ data_types::i64, format::bfyx, { 4, 1, 1, 1 } }); + set_values(this->start_, {0, 1, 0, 1}); + this->stop_ = this->engine_.allocate_memory({ data_types::i64, format::bfyx, { 4, 1, 1, 1 } }); + set_values(this->stop_, { 1, 2, 5, 100 }); + this->step_ = this->engine_.allocate_memory({ data_types::i64, format::bfyx, { 4, 1, 1, 1 } }); + set_values(this->step_, { 1, 1, 1, 10 }); + this->output_shape_ = { 1, 1, 5, 10 }; + this->expected_output_ = { + 1201, 1211, 1221, 1231, 1241, 1301, 1311, 1321, 1331, 1341, + 1401, 1411, 1421, 1431, 1441, 1501, 1511, 1521, 1531, 1541, + 1601, 1611, 1621, 1631, 1641, 1701, 1711, 1721, 1731, 1741, + 1801, 1811, 1821, 1831, 1841, 1901, 1911, 1921, 1931, 1941, + 2001, 2011, 2021, 2031, 2041, 2101, 2111, 2121, 2131, 2141 + }; +} + +TYPED_TEST(SliceTest, bfyx_negative_step) { + this->input_shape_ = { 1, 2, 100, 12 }; + this->start_ = this->engine_.allocate_memory({ data_types::i64, format::bfyx, { 4, 1, 1, 1 } }); + set_values(this->start_, { 1, 2, 5, 100 }); + this->stop_ = this->engine_.allocate_memory({ data_types::i64, format::bfyx, { 4, 1, 1, 1 } }); + set_values(this->stop_, {0, 1, 0, 1}); + this->step_ = this->engine_.allocate_memory({ data_types::i64, format::bfyx, { 4, 1, 1, 1 } }); + set_values(this->step_, { -1, -1, -1, -10 }); + this->output_shape_ = { 1, 1, 5, 10 }; + this->expected_output_ = { + 1799, 1789, 1779, 1769, 1759, 1699, 1689, 1679, 1669, 1659, + 1599, 1589, 1579, 1569, 1559, 1499, 1489, 1479, 1469, 1459, + 1399, 1389, 1379, 1369, 1359, 1299, 1289, 1279, 1269, 1259, + 1199, 1189, 1179, 1169, 1159, 1099, 1089, 1079, 1069, 1059, + 999, 989, 979, 969, 959, 899, 889, 879, 869, 859 + }; +} + +TYPED_TEST(SliceTest, bfzyx) { + this->input_shape_ = { 2, 3, 10, 12, 5 }; + this->start_ = this->engine_.allocate_memory({ data_types::i64, format::bfzyx, { 5, 1, 1, 1 } }); + set_values(this->start_, { 0, 0, 0, 0, 0 }); + this->stop_ = this->engine_.allocate_memory({ data_types::i64, format::bfzyx, { 5, 1, 1, 1 } }); + set_values(this->stop_, {1, 2, 2, 2, 2}); + this->step_ = this->engine_.allocate_memory({ data_types::i64, format::bfzyx, { 5, 1, 1, 1 } }); + set_values(this->step_, { 1, 1, 1, 1, 1 }); + this->output_shape_ = { 1, 2, 2, 2, 2 }; + this->expected_output_ = { + 0, 1, 10, 11, 120, 121, 130, 131, + 600, 601, 610, 611, 720, 721, 730, 731 + }; +} + +} // anonymous namespace diff --git a/inference-engine/thirdparty/mkl-dnn b/inference-engine/thirdparty/mkl-dnn index 5adbcb757c7..acee807d849 160000 --- a/inference-engine/thirdparty/mkl-dnn +++ b/inference-engine/thirdparty/mkl-dnn @@ -1 +1 @@ -Subproject commit 5adbcb757c77f1bf0cd11ad58dd92e93ea2e3561 +Subproject commit acee807d84944008df6741677ab52e01d790d58a diff --git a/samples/c/common/opencv_c_wrapper/CMakeLists.txt b/samples/c/common/opencv_c_wrapper/CMakeLists.txt index bfb4cdf88db..f7cc3f8ae9c 100644 --- a/samples/c/common/opencv_c_wrapper/CMakeLists.txt +++ b/samples/c/common/opencv_c_wrapper/CMakeLists.txt @@ -9,7 +9,7 @@ file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h) # create library -add_library(${TARGET_NAME} SHARED EXCLUDE_FROM_ALL ${HEADERS} ${SOURCES}) +add_library(${TARGET_NAME} SHARED ${HEADERS} ${SOURCES}) # Find OpenCV components if exist find_package(OpenCV COMPONENTS core imgproc imgcodecs QUIET) diff --git a/samples/c/common/opencv_c_wrapper/bmp_reader.c b/samples/c/common/opencv_c_wrapper/bmp_reader.c index e4362277f67..05ec4861901 100644 --- a/samples/c/common/opencv_c_wrapper/bmp_reader.c +++ b/samples/c/common/opencv_c_wrapper/bmp_reader.c @@ -1,31 +1,72 @@ #include "bmp_reader.h" +#include #include #include int readBmpImage(const char* fileName, BitMap* image) { - FILE* input = fopen(fileName, "rb"); + size_t cnt; + int status = 0; + FILE* input = 0; - if (input == NULL) { - printf("[BMP] file %s is not opened\n", fileName); - return 1; + if (NULL == fileName || NULL == image) { + printf("[BMP] bad arguments\n"); + status = -1; + goto Exit; } - fread(&image->header.type, 2, 1, input); + memset(image, 0, sizeof(BitMap)); + + input = fopen(fileName, "rb"); + if (input == NULL) { + printf("[BMP] file %s is not opened\n", fileName); + status = 1; + goto Exit; + } + + cnt = fread(&image->header.type, sizeof(image->header.type), sizeof(unsigned char), input); + if (cnt != sizeof(image->header.type)) { + printf("[BMP] file read error\n"); + status = 2; + goto Exit; + } if (image->header.type != 'M' * 256 + 'B') { printf("[BMP] file is not bmp type\n"); - return 2; + status = 2; + goto Exit; } - fread(&image->header.size, 4, 1, input); - fread(&image->header.reserved, 4, 1, input); - fread(&image->header.offset, 4, 1, input); + cnt = fread(&image->header.size, sizeof(image->header.size), sizeof(unsigned char), input); + if (cnt != sizeof(image->header.size)) { + printf("[BMP] file read error\n"); + status = 2; + goto Exit; + } - fread(&image->infoHeader, sizeof(BmpInfoHeader), 1, input); + cnt = fread(&image->header.reserved, sizeof(image->header.reserved), sizeof(unsigned char), input); + if (cnt != sizeof(image->header.reserved)) { + printf("[BMP] file read error\n"); + status = 2; + goto Exit; + } + + cnt = fread(&image->header.offset, sizeof(image->header.offset), sizeof(unsigned char), input); + if (cnt != sizeof(image->header.offset)) { + printf("[BMP] file read error\n"); + status = 2; + goto Exit; + } + + cnt = fread(&image->infoHeader, sizeof(BmpInfoHeader), sizeof(unsigned char), input); + if (cnt != sizeof(image->header.offset)) { + printf("[BMP] file read error\n"); + status = 2; + goto Exit; + } image->width = image->infoHeader.width; - image->height = image->infoHeader.height; + image->height = abs(image->infoHeader.height); if (image->infoHeader.bits != 24) { printf("[BMP] 24bpp only supported. But input has: %d\n", image->infoHeader.bits); @@ -38,21 +79,49 @@ int readBmpImage(const char* fileName, BitMap* image) { } int padSize = image->width & 3; + size_t row_size = (size_t)image->width * 3; char pad[3]; - size_t size = image->width * image->height * 3; + size_t size = row_size * image->height; image->data = malloc(sizeof(char) * size); + if (NULL == image->data) { + printf("[BMP] memory allocation failed\n"); + return 5; + } - fseek(input, image->header.offset, 0); + if (0 != fseek(input, image->header.offset, SEEK_SET)) { + printf("[BMP] file seek error\n"); + status = 2; + goto Exit; + } // reading by rows in invert vertically int i; for (i = 0; i < image->height; i++) { unsigned int storeAt = image->infoHeader.height < 0 ? i : (unsigned int)image->height - 1 - i; - fread(image->data + image->width * 3 * storeAt, image->width * 3, 1, input); - fread(pad, padSize, 1, input); + cnt = fread(image->data + row_size * storeAt, row_size, sizeof(unsigned char), input); + if (cnt != row_size) { + printf("[BMP] file read error\n"); + status = 2; + goto Exit; + } + + cnt = fread(pad, padSize, sizeof(unsigned char), input); + if (cnt != padSize) { + printf("[BMP] file read error\n"); + status = 2; + goto Exit; + } } - fclose(input); - return 0; +Exit: + if (0 != status && NULL != image && NULL != image->data) { + free(image->data); + } + + if (NULL != input) { + fclose(input); + } + + return status; } diff --git a/samples/cpp/benchmark_app/README.md b/samples/cpp/benchmark_app/README.md index 67fdfb73535..5b67cbf13ac 100644 --- a/samples/cpp/benchmark_app/README.md +++ b/samples/cpp/benchmark_app/README.md @@ -79,11 +79,14 @@ Options: -h, --help Print a usage message -m "" Required. Path to an .xml/.onnx/.prototxt file with a trained model or to a .blob files with a trained compiled model. -i "" Optional. Path to a folder with images and/or binaries or to specific image or binary file. + In case of dynamic shapes networks with several inputs provide the same number of files for each input (except cases with single file for any input): + "input1:1.jpg input2:1.bin", "input1:1.bin,2.bin input2:3.bin input3:4.bin,5.bin ". + Also you can pass specific keys for inputs: "random" - for fillling input with random data, "image_info" - for filling input with image size. -d "" Optional. Specify a target device to infer on (the list of available devices is shown below). Default value is CPU. Use "-d HETERO:" format to specify HETERO plugin. Use "-d MULTI:" format to specify MULTI plugin. Use "-d GPU.X" format to specify device id for GPU devices. - The application looks for a suitable plugin for the specified device. + The application looks for a suitable plugin for the specified device. -l "" Required for CPU custom layers. Absolute path to a shared library with the kernels implementations. Or -c "" Required for GPU custom kernels. Absolute path to an .xml file with the kernels description. @@ -99,11 +102,23 @@ Options: -stream_output Optional. Print progress as a plain text. When specified, an interactive progress bar is replaced with a multiline output. -t Optional. Time, in seconds, to execute topology. -progress Optional. Show progress bar (can affect performance measurement). Default values is "false". - -shape Optional. Set shape for input. For example, "input1[1,3,224,224],input2[1,4]" or "[1,3,224,224]" in case of one input size. + -shape Optional. Set shape for network input. For example, "input1[1,3,224,224],input2[1,4]" or "[1,3,224,224]" in case of one input size. + This parameter affect model input shape and can be dynamic. For dynamic dimensions use symbol `?` or '-1'. Ex. [?,3,?,?]. + For bounded dimensions specify range 'min..max'. Ex. [1..10,3,?,?]. + -data_shape Required for networks with dynamic shapes. Set shape for input blobs. + In case of one input size: "[1,3,224,224]" or "input1[1,3,224,224],input2[1,4]". + In case of several input sizes provide the same number for + each input (except cases with single shape for any input): "[1,3,128,128][3,3,128,128][1,3,320,320]", + "input1[1,1,128,128][1,1,256,256],input2[80,1]" or "input1[1,192][1,384],input2[1,192][1,384],input3[1,192][1,384],input4[1,192][1,384]". + If network shapes are all static specifying the option will cause an exception. -layout Optional. Prompts how network layouts should be treated by application. For example, "input1[NCHW],input2[NC]" or "[NCHW]" in case of one input size. -cache_dir "" Optional. Enables caching of loaded models to specified directory. -load_from_file Optional. Loads model from file directly without ReadNetwork. -latency_percentile Optional. Defines the percentile to be reported in latency metric. The valid range is [1, 100]. The default value is 50 (median). + -inference_only Optional. Measure only inference stage. Default option for static models. + Dynamic models are measured in full mode which includes inputs setup stage, + inference only mode available for them with single input data shape only. + To enable full mode for static models pass \"false\" value to this argument: ex. -inference_only=false". CPU-specific performance options: -nstreams "" Optional. Number of streams to use for inference on the CPU, GPU or MYRIAD devices @@ -117,16 +132,19 @@ Options: -enforcebf16="" Optional. By default floating point operations execution in bfloat16 precision are enforced if supported by platform. -pin "YES"/"HYBRID_AWARE"/"NUMA"/"NO" Optional. Explicit inference threads binding options (leave empty to let the OpenVINO to make a choice): - enabling threads->cores pinning ("YES", which is already default for a conventional CPU), - letting the runtime to decide on the threads->different core types ("HYBRID_AWARE", which is default on the hybrid CPUs) - threads->(NUMA)nodes ("NUMA") or - completely disable ("NO") CPU inference threads pinning. + enabling threads->cores pinning ("YES", which is already default for a conventional CPU), + letting the runtime to decide on the threads->different core types ("HYBRID_AWARE", which is default on the hybrid CPUs) + threads->(NUMA)nodes ("NUMA") or completely disable ("NO") CPU inference threads pinning. -ip "U8"/"FP16"/"FP32" Optional. Specifies precision for all input layers of the network. -op "U8"/"FP16"/"FP32" Optional. Specifies precision for all output layers of the network. - -iop Optional. Specifies precision for input and output layers by name. Example: -iop "input:FP16, output:FP16". Notice that quotes are required. Overwrites precision from ip and op options for specified layers. + -iop Optional. Specifies precision for input and output layers by name. Example: -iop "input:FP16, output:FP16". Notice that quotes are required. + Overwrites precision from ip and op options for specified layers. Statistics dumping options: - -report_type "" Optional. Enable collecting statistics report. "no_counters" report contains configuration options specified, resulting FPS and latency. "average_counters" report extends "no_counters" report and additionally includes average PM counters values for each layer from the network. "detailed_counters" report extends "average_counters" report and additionally includes per-layer PM counters and latency for each executed infer request. + -report_type "" Optional. Enable collecting statistics report. "no_counters" report contains configuration options specified, resulting FPS and latency. + "average_counters" report extends "no_counters" report and additionally includes average PM counters values for each layer from the network. + "detailed_counters" report extends "average_counters" report and additionally includes per-layer PM counters + and latency for each executed infer request. -report_folder Optional. Path to a folder where statistics report is stored. -exec_graph_path Optional. Path to a file where to store executable graph information serialized. -pc Optional. Report performance counters. @@ -181,33 +199,55 @@ This section provides step-by-step instructions on how to run the Benchmark Tool The application outputs the number of executed iterations, total duration of execution, latency, and throughput. Additionally, if you set the `-report_type` parameter, the application outputs statistics report. If you set the `-pc` parameter, the application outputs performance counters. If you set `-exec_graph_path`, the application reports executable graph information serialized. All measurements including per-layer PM counters are reported in milliseconds. -Below are fragments of sample output for CPU and GPU devices: +Below are fragments of sample output static and dynamic networks: -* For CPU: +* For static network: ``` - [Step 8/9] Measuring performance (Start inference asynchronously, 60000 ms duration, 4 inference requests in parallel using 4 streams) - Progress: [....................] 100.00% done - - [Step 9/9] Dumping statistics report - [ INFO ] Statistics collecting was not requested. No reports are dumped. - Progress: [....................] 100.00% done - - Count: 4612 iterations - Duration: 60110.04 ms - Latency: 50.99 ms - Throughput: 76.73 FPS - ``` - -* For GPU: - ``` - [Step 10/11] Measuring performance (Start inference asynchronously, 5 inference requests using 4 streams for CPU, limits: 120000 ms duration) - Progress: [....................] 100% done + [Step 10/11] Measuring performance (Start inference asynchronously, 4 inference requests using 4 streams for CPU, limits: 60000 ms duration) + [ INFO ] BENCHMARK IS IN INFERENCE ONLY MODE. + [ INFO ] Input blobs will be filled once before performance measurements. + [ INFO ] First inference took 26.26 ms + Progress: [................... ] 99% done [Step 11/11] Dumping statistics report - Count: 102515 iterations - Duration: 120007.38 ms - Latency: 5.84 ms - Throughput: 854.24 FP + [ INFO ] Count: 6640 iterations + [ INFO ] Duration: 60039.70 ms + [ INFO ] Latency: + [ INFO ] Median: 35.36 ms + [ INFO ] Avg: 36.12 ms + [ INFO ] Min: 18.55 ms + [ INFO ] Max: 88.96 ms + [ INFO ] Throughput: 110.59 FPS + ``` + +* For dynamic network: + ``` + [Step 10/11] Measuring performance (Start inference asynchronously, 4 inference requests using 4 streams for CPU, limits: 60000 ms duration) + [ INFO ] BENCHMARK IS IN FULL MODE. + [ INFO ] Inputs setup stage will be included in performance measurements. + [ INFO ] First inference took 26.80 ms + Progress: [................... ] 99% done + + [Step 11/11] Dumping statistics report + [ INFO ] Count: 5199 iterations + [ INFO ] Duration: 60043.34 ms + [ INFO ] Latency: + [ INFO ] Median: 41.58 ms + [ INFO ] Avg: 46.07 ms + [ INFO ] Min: 8.44 ms + [ INFO ] Max: 115.65 ms + [ INFO ] Latency for each data shape group: + [ INFO ] 1. data : [1, 3, 224, 224] + [ INFO ] Median: 38.37 ms + [ INFO ] Avg: 30.29 ms + [ INFO ] Min: 8.44 ms + [ INFO ] Max: 61.30 ms + [ INFO ] 2. data : [1, 3, 448, 448] + [ INFO ] Median: 68.21 ms + [ INFO ] Avg: 61.85 ms + [ INFO ] Min: 29.58 ms + [ INFO ] Max: 115.65 ms + [ INFO ] Throughput: 86.59 FPS ``` ## See Also diff --git a/samples/cpp/benchmark_app/benchmark_app.hpp b/samples/cpp/benchmark_app/benchmark_app.hpp index 511b03c4751..35ed1c05ee7 100644 --- a/samples/cpp/benchmark_app/benchmark_app.hpp +++ b/samples/cpp/benchmark_app/benchmark_app.hpp @@ -19,7 +19,12 @@ static const char help_message[] = "Print a usage message"; /// @brief message for images argument static const char input_message[] = - "Optional. Path to a folder with images and/or binaries or to specific image or binary file."; + "Optional. Path to a folder with images and/or binaries or to specific image or binary file.\n" + " In case of dynamic shapes networks with several inputs provide the same number" + " of files for each input (except cases with single file for any input):" + "\"input1:1.jpg input2:1.bin\", \"input1:1.bin,2.bin input2:3.bin input3:4.bin,5.bin \"." + " Also you can pass specific keys for inputs: \"random\" - for fillling input with random data," + " \"image_info\" - for filling input with image size."; /// @brief message for model argument static const char model_message[] = @@ -136,6 +141,9 @@ static const char progress_message[] = // @brief message for performance counters option static const char pc_message[] = "Optional. Report performance counters."; +// @brief message for performance counters for sequence option +static const char pcseq_message[] = "Optional. Report latencies for each shape in -data_shape sequence."; + #ifdef HAVE_DEVICE_MEM_SUPPORT // @brief message for switching memory allocation type option static const char use_device_mem_message[] = @@ -155,9 +163,19 @@ static const char dump_config_message[] = #endif static const char shape_message[] = - "Optional. Set shape for input. For example, \"input1[1,3,224,224],input2[1,4]\" or " - "\"[1,3,224,224]\"" - " in case of one input size."; + "Optional. Set shape for network input. For example, \"input1[1,3,224,224],input2[1,4]\" or \"[1,3,224,224]\"" + " in case of one input size. This parameter affect model input shape and can be dynamic." + " For dynamic dimensions use symbol `?` or '-1'. Ex. [?,3,?,?]." + " For bounded dimensions specify range 'min..max'. Ex. [1..10,3,?,?]."; + +static const char data_shape_message[] = + " Required for networks with dynamic shapes. Set shape for input blobs." + " In case of one input size: \"[1,3,224,224]\" or \"input1[1,3,224,224],input2[1,4]\"." + " In case of several input sizes provide the same number for each input (except cases with single shape for any " + "input):" + " \"[1,3,128,128][3,3,128,128][1,3,320,320]\", \"input1[1,1,128,128][1,1,256,256],input2[80,1]\"" + " or \"input1[1,192][1,384],input2[1,192][1,384],input3[1,192][1,384],input4[1,192][1,384]\"." + " If network shapes are all static specifying the option will cause an exception."; static const char layout_message[] = "Optional. Prompts how network layouts should be treated by application. " @@ -196,6 +214,13 @@ static constexpr char input_image_mean_message[] = "Values to be provided in the [R, G, B] format. Can be defined for desired input of the model,\n" "Example: -imean data[255,255,255],info[255,255,255]\n"; +static constexpr char inference_only_message[] = + "Optional. Measure only inference stage. Default option for static models. Dynamic models" + " are measured in full mode which includes inputs setup stage," + " inference only mode available for them with single input data shape only." + " To enable full mode for static models pass \"false\" value to this argument:" + " ex. \"-inference_only=false\".\n"; + /// @brief Define flag for showing help message
DEFINE_bool(h, false, help_message); @@ -276,6 +301,9 @@ DEFINE_bool(progress, false, progress_message); /// @brief Define flag for showing performance counters
DEFINE_bool(pc, false, pc_message); +/// @brief Define flag for showing performance sequence counters
+DEFINE_bool(pcseq, false, pcseq_message); + #ifdef HAVE_DEVICE_MEM_SUPPORT /// @brief Define flag for switching beetwen host and device memory allocation for input and output buffers DEFINE_bool(use_device_mem, false, use_device_mem_message); @@ -292,6 +320,9 @@ DEFINE_string(dump_config, "", dump_config_message); /// @brief Define flag for input shape
DEFINE_string(shape, "", shape_message); +/// @brief Define flag for input blob shape
+DEFINE_string(data_shape, "", data_shape_message); + /// @brief Define flag for layout shape
DEFINE_string(layout, "", layout_message); @@ -322,6 +353,9 @@ DEFINE_string(iscale, "", input_image_scale_message); /// @brief Define flag for using input image mean
DEFINE_string(imean, "", input_image_mean_message); +/// @brief Define flag for inference only mode
+DEFINE_bool(inference_only, true, inference_only_message); + /** * @brief This function show a help message */ @@ -346,8 +380,9 @@ static void showUsage() { std::cout << " -t " << execution_time_message << std::endl; std::cout << " -progress " << progress_message << std::endl; std::cout << " -shape " << shape_message << std::endl; + std::cout << " -data_shape " << data_shape_message << std::endl; std::cout << " -layout " << layout_message << std::endl; - std::cout << " -cache_dir \"\" " << cache_dir_message << std::endl; + std::cout << " -cache_dir \"\" " << cache_dir_message << std::endl; std::cout << " -load_from_file " << load_from_file_message << std::endl; std::cout << " -latency_percentile " << infer_latency_percentile_message << std::endl; std::cout << std::endl << " device-specific performance options:" << std::endl; @@ -363,6 +398,7 @@ static void showUsage() { std::cout << " -report_folder " << report_folder_message << std::endl; std::cout << " -exec_graph_path " << exec_graph_path_message << std::endl; std::cout << " -pc " << pc_message << std::endl; + std::cout << " -pcseq " << pcseq_message << std::endl; #ifdef USE_OPENCV std::cout << " -dump_config " << dump_config_message << std::endl; std::cout << " -load_config " << load_config_message << std::endl; @@ -373,4 +409,5 @@ static void showUsage() { std::cout << " -iop \"\" " << iop_message << std::endl; std::cout << " -iscale " << input_image_scale_message << std::endl; std::cout << " -imean " << input_image_mean_message << std::endl; + std::cout << " -inference_only " << inference_only_message << std::endl; } diff --git a/samples/cpp/benchmark_app/infer_request_wrap.hpp b/samples/cpp/benchmark_app/infer_request_wrap.hpp index fb142a08da8..774ef8f2153 100644 --- a/samples/cpp/benchmark_app/infer_request_wrap.hpp +++ b/samples/cpp/benchmark_app/infer_request_wrap.hpp @@ -18,13 +18,12 @@ // clang-format off #include "inference_engine.hpp" +#include "remote_blobs_filling.hpp" #include "statistics_report.hpp" +#include "utils.hpp" // clang-format on -typedef std::chrono::high_resolution_clock Time; -typedef std::chrono::nanoseconds ns; - -typedef std::function QueueCallbackFunction; +typedef std::function QueueCallbackFunction; /// @brief Wrapper class for InferenceEngine::InferRequest. Handles asynchronous callbacks and calculates execution /// time. @@ -37,10 +36,12 @@ public: explicit InferReqWrap(InferenceEngine::ExecutableNetwork& net, size_t id, QueueCallbackFunction callbackQueue) : _request(net.CreateInferRequest()), _id(id), - _callbackQueue(callbackQueue) { + _lat_group_id(0), + _callbackQueue(callbackQueue), + outputClBuffer() { _request.SetCompletionCallback([&]() { _endTime = Time::now(); - _callbackQueue(_id, getExecutionTimeInMilliseconds()); + _callbackQueue(_id, _lat_group_id, getExecutionTimeInMilliseconds()); }); } @@ -57,7 +58,7 @@ public: _startTime = Time::now(); _request.Infer(); _endTime = Time::now(); - _callbackQueue(_id, getExecutionTimeInMilliseconds()); + _callbackQueue(_id, _lat_group_id, getExecutionTimeInMilliseconds()); } std::map getPerformanceCounts() { @@ -77,26 +78,48 @@ public: return static_cast(execTime.count()) * 0.000001; } + void setLatencyGroupId(size_t id) { + _lat_group_id = id; + } + + // in case of using GPU memory we need to allocate CL buffer for + // output blobs. By encapsulating cl buffer inside InferReqWrap + // we will control the number of output buffers and access to it. + std::map& getOutputClBuffer() { + return outputClBuffer; + } + private: InferenceEngine::InferRequest _request; Time::time_point _startTime; Time::time_point _endTime; size_t _id; + size_t _lat_group_id; QueueCallbackFunction _callbackQueue; + std::map outputClBuffer; }; class InferRequestsQueue final { public: - InferRequestsQueue(InferenceEngine::ExecutableNetwork& net, size_t nireq) { + InferRequestsQueue(InferenceEngine::ExecutableNetwork& net, + size_t nireq, + size_t lat_group_n, + bool enable_lat_groups) + : enable_lat_groups(enable_lat_groups) { for (size_t id = 0; id < nireq; id++) { - requests.push_back(std::make_shared( - net, - id, - std::bind(&InferRequestsQueue::putIdleRequest, this, std::placeholders::_1, std::placeholders::_2))); + requests.push_back(std::make_shared(net, + id, + std::bind(&InferRequestsQueue::putIdleRequest, + this, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3))); _idleIds.push(id); } + _latency_groups.resize(lat_group_n); resetTimes(); } + ~InferRequestsQueue() { // Inference Request guarantee that it will wait for all asynchronous internal tasks in destructor // So it should be released before any context that the request can use inside internal asynchronous tasks @@ -111,15 +134,21 @@ public: _startTime = Time::time_point::max(); _endTime = Time::time_point::min(); _latencies.clear(); + for (auto& group : _latency_groups) { + group.clear(); + } } double getDurationInMilliseconds() { return std::chrono::duration_cast(_endTime - _startTime).count() * 0.000001; } - void putIdleRequest(size_t id, const double latency) { + void putIdleRequest(size_t id, size_t lat_group_id, const double latency) { std::unique_lock lock(_mutex); _latencies.push_back(latency); + if (enable_lat_groups) { + _latency_groups[lat_group_id].push_back(latency); + } _idleIds.push(id); _endTime = std::max(Time::now(), _endTime); _cv.notify_one(); @@ -147,6 +176,10 @@ public: return _latencies; } + std::vector> getLatencyGroups() { + return _latency_groups; + } + std::vector requests; private: @@ -156,4 +189,6 @@ private: Time::time_point _startTime; Time::time_point _endTime; std::vector _latencies; + std::vector> _latency_groups; + bool enable_lat_groups; }; diff --git a/samples/cpp/benchmark_app/inputs_filling.cpp b/samples/cpp/benchmark_app/inputs_filling.cpp index 38010ac6312..93a8e3895ef 100644 --- a/samples/cpp/benchmark_app/inputs_filling.cpp +++ b/samples/cpp/benchmark_app/inputs_filling.cpp @@ -3,7 +3,10 @@ // #include +#include +#include #include +#include #include #include #include @@ -13,6 +16,8 @@ #include "format_reader_ptr.h" #include "inputs_filling.hpp" +#include "shared_blob_allocator.hpp" +#include "utils.hpp" // clang-format on using namespace InferenceEngine; @@ -42,207 +47,464 @@ std::vector filterFilesByExtensions(const std::vector& return filtered; } -template -void fillBlobImage(Blob::Ptr& inputBlob, - const std::vector& filePaths, - const size_t& batchSize, - const benchmark_app::InputInfo& app_info, - const size_t& requestId, - const size_t& inputId, - const size_t& inputSize) { - MemoryBlob::Ptr minput = as(inputBlob); - if (!minput) { - IE_THROW() << "We expect inputBlob to be inherited from MemoryBlob in " - "fillBlobImage, " - << "but by fact we were not able to cast inputBlob to MemoryBlob"; - } - // locked memory holder should be alive all time while access to its buffer - // happens - auto minputHolder = minput->wmap(); - auto inputBlobData = minputHolder.as(); - - /** Collect images data ptrs **/ - std::vector> vreader; - vreader.reserve(batchSize); - - for (size_t i = 0ULL, inputIndex = requestId * batchSize * inputSize + inputId; i < batchSize; - i++, inputIndex += inputSize) { - inputIndex %= filePaths.size(); - - slog::info << "Prepare image " << filePaths[inputIndex] << slog::endl; - FormatReader::ReaderPtr reader(filePaths[inputIndex].c_str()); - if (reader.get() == nullptr) { - slog::warn << "Image " << filePaths[inputIndex] << " cannot be read!" << slog::endl << slog::endl; - continue; - } - - /** Getting image data **/ - std::shared_ptr imageData(reader->getData(app_info.width(), app_info.height())); - if (imageData) { - vreader.push_back(imageData); - } - } - - /** Fill input tensor with images. First b channel, then g and r channels **/ - const size_t numChannels = app_info.channels(); - const size_t width = app_info.width(); - const size_t height = app_info.height(); - /** Iterate over all input images **/ - for (size_t imageId = 0; imageId < vreader.size(); ++imageId) { - /** Iterate over all width **/ - for (size_t w = 0; w < app_info.width(); ++w) { - /** Iterate over all height **/ - for (size_t h = 0; h < app_info.height(); ++h) { - /** Iterate over all channels **/ - for (size_t ch = 0; ch < numChannels; ++ch) { - /** [images stride + channels stride + pixel id ] all in - * bytes **/ - size_t offset = imageId * numChannels * width * height + - (((app_info.layout == "NCHW") || (app_info.layout == "CHW")) - ? (ch * width * height + h * width + w) - : (h * width * numChannels + w * numChannels + ch)); - inputBlobData[offset] = - (static_cast(vreader.at(imageId).get()[h * width * numChannels + w * numChannels + ch]) - - static_cast(app_info.mean[ch])) / - static_cast(app_info.scale[ch]); - } - } - } - } -} - -template -void fillBlobBinary(Blob::Ptr& inputBlob, - const std::vector& filePaths, - const size_t& batchSize, - const size_t& requestId, - const size_t& inputId, - const size_t& inputSize) { - MemoryBlob::Ptr minput = as(inputBlob); - auto adjBatchSize = batchSize; - - // Check layout - std::stringstream ss; - auto tensorDesc = inputBlob->getTensorDesc(); - ss << tensorDesc.getLayout(); - auto layout = ss.str(); - std::size_t batchIndex = layout.find("N"); - if (batchIndex == std::string::npos) { - adjBatchSize = 1; - } else if (tensorDesc.getDims().at(batchIndex) != batchSize) { - adjBatchSize = tensorDesc.getDims().at(batchIndex); - } - - if (!minput) { - IE_THROW() << "We expect inputBlob to be inherited from MemoryBlob in " - "fillBlobBinary, " - << "but by fact we were not able to cast inputBlob to MemoryBlob"; - } - // locked memory holder should be alive all time while access to its buffer - // happens - auto minputHolder = minput->wmap(); - - auto inputBlobData = minputHolder.as(); - for (size_t i = 0ULL, inputIndex = requestId * adjBatchSize * inputSize + inputId; i < adjBatchSize; - i++, inputIndex += inputSize) { - inputIndex %= filePaths.size(); - - slog::info << "Prepare binary file " << filePaths[inputIndex] << slog::endl; - std::ifstream binaryFile(filePaths[inputIndex], std::ios_base::binary | std::ios_base::ate); - if (!binaryFile) { - IE_THROW() << "Cannot open " << filePaths[inputIndex]; - } - - auto fileSize = static_cast(binaryFile.tellg()); - binaryFile.seekg(0, std::ios_base::beg); - if (!binaryFile.good()) { - IE_THROW() << "Can not read " << filePaths[inputIndex]; - } - auto inputSize = inputBlob->size() * sizeof(T) / adjBatchSize; - if (fileSize != inputSize) { - IE_THROW() << "File " << filePaths[inputIndex] << " contains " << std::to_string(fileSize) - << " bytes " - "but the network expects " - << std::to_string(inputSize); - } - binaryFile.read(&inputBlobData[i * inputSize], inputSize); - } -} - template using uniformDistribution = typename std::conditional< std::is_floating_point::value, std::uniform_real_distribution, typename std::conditional::value, std::uniform_int_distribution, void>::type>::type; -template -void fillBlobRandom(Blob::Ptr& inputBlob, - T rand_min = std::numeric_limits::min(), - T rand_max = std::numeric_limits::max()) { - MemoryBlob::Ptr minput = as(inputBlob); - if (!minput) { - IE_THROW() << "We expect inputBlob to be inherited from MemoryBlob in " - "fillBlobRandom, " - << "but by fact we were not able to cast inputBlob to MemoryBlob"; - } - // locked memory holder should be alive all time while access to its buffer - // happens - auto minputHolder = minput->wmap(); +template +InferenceEngine::Blob::Ptr createBlobFromImage(const std::vector& files, + size_t inputId, + size_t batchSize, + const benchmark_app::InputInfo& inputInfo, + std::string* filenames_used = nullptr) { + size_t blob_size = + std::accumulate(inputInfo.dataShape.begin(), inputInfo.dataShape.end(), 1, std::multiplies()); + T* data = new T[blob_size]; - auto inputBlobData = minputHolder.as(); - std::mt19937 gen(0); - uniformDistribution distribution(rand_min, rand_max); - for (size_t i = 0; i < inputBlob->size(); i++) { - inputBlobData[i] = static_cast(distribution(gen)); + /** Collect images data ptrs **/ + std::vector> vreader; + vreader.reserve(batchSize); + + for (size_t b = 0; b < batchSize; ++b) { + auto inputIndex = (inputId + b) % files.size(); + if (filenames_used) { + *filenames_used += (filenames_used->empty() ? "" : ", ") + files[inputIndex]; + } + FormatReader::ReaderPtr reader(files[inputIndex].c_str()); + if (reader.get() == nullptr) { + slog::warn << "Image " << files[inputIndex] << " cannot be read!" << slog::endl << slog::endl; + continue; + } + + /** Getting image data **/ + std::shared_ptr imageData(reader->getData(inputInfo.width(), inputInfo.height())); + if (imageData) { + vreader.push_back(imageData); + } } + + /** Fill input tensor with image. First b channel, then g and r channels **/ + const size_t numChannels = inputInfo.channels(); + const size_t width = inputInfo.width(); + const size_t height = inputInfo.height(); + /** Iterate over all input images **/ + for (size_t b = 0; b < batchSize; ++b) { + /** Iterate over all width **/ + for (size_t w = 0; w < width; ++w) { + /** Iterate over all height **/ + for (size_t h = 0; h < height; ++h) { + /** Iterate over all channels **/ + for (size_t ch = 0; ch < numChannels; ++ch) { + /** [images stride + channels stride + pixel id ] all in + * bytes **/ + size_t offset = b * numChannels * width * height + + (((inputInfo.layout == "NCHW") || (inputInfo.layout == "CHW")) + ? (ch * width * height + h * width + w) + : (h * width * numChannels + w * numChannels + ch)); + data[offset] = + (static_cast(vreader.at(b).get()[h * width * numChannels + w * numChannels + ch]) - + static_cast(inputInfo.mean[ch])) / + static_cast(inputInfo.scale[ch]); + } + } + } + } + + InferenceEngine::TensorDesc tDesc(inputInfo.precision, inputInfo.dataShape, inputInfo.originalLayout); + auto blob = + InferenceEngine::make_shared_blob(tDesc, + std::make_shared>(data, blob_size * sizeof(T))); + blob->allocate(); + return blob; } template -void fillBlobImInfo(Blob::Ptr& inputBlob, const size_t& batchSize, std::pair image_size) { - MemoryBlob::Ptr minput = as(inputBlob); - if (!minput) { - IE_THROW() << "We expect inputBlob to be inherited from MemoryBlob in " - "fillBlobImInfo, " - << "but by fact we were not able to cast inputBlob to MemoryBlob"; - } - // locked memory holder should be alive all time while access to its buffer - // happens - auto minputHolder = minput->wmap(); +InferenceEngine::Blob::Ptr createBlobImInfo(const std::pair& image_size, + size_t batchSize, + const benchmark_app::InputInfo& inputInfo) { + size_t blob_size = + std::accumulate(inputInfo.dataShape.begin(), inputInfo.dataShape.end(), 1, std::multiplies()); + T* data = new T[blob_size]; - auto inputBlobData = minputHolder.as(); for (size_t b = 0; b < batchSize; b++) { - size_t iminfoSize = inputBlob->size() / batchSize; + size_t iminfoSize = blob_size / batchSize; for (size_t i = 0; i < iminfoSize; i++) { size_t index = b * iminfoSize + i; if (0 == i) - inputBlobData[index] = static_cast(image_size.first); + data[index] = static_cast(image_size.first); else if (1 == i) - inputBlobData[index] = static_cast(image_size.second); + data[index] = static_cast(image_size.second); else - inputBlobData[index] = 1; + data[index] = 1; } } + + InferenceEngine::TensorDesc tDesc(inputInfo.precision, inputInfo.dataShape, inputInfo.originalLayout); + InferenceEngine::Blob::Ptr blob = + InferenceEngine::make_shared_blob(tDesc, + std::make_shared>(data, blob_size * sizeof(T))); + blob->allocate(); + return blob; +} + +template +InferenceEngine::Blob::Ptr createBlobFromBinary(const std::vector& files, + size_t inputId, + size_t batchSize, + const benchmark_app::InputInfo& inputInfo, + std::string* filenames_used = nullptr) { + size_t blob_size = + std::accumulate(inputInfo.dataShape.begin(), inputInfo.dataShape.end(), 1, std::multiplies()); + char* data = new char[blob_size * sizeof(T)]; + + // adjust batch size + std::stringstream ss; + ss << inputInfo.originalLayout; + std::string layout = ss.str(); + if (layout.find("N") == std::string::npos) { + batchSize = 1; + } else if (inputInfo.batch() != batchSize) { + batchSize = inputInfo.batch(); + } + + for (size_t b = 0; b < batchSize; ++b) { + size_t inputIndex = (inputId + b) % files.size(); + std::ifstream binaryFile(files[inputIndex], std::ios_base::binary | std::ios_base::ate); + if (!binaryFile) { + IE_THROW() << "Cannot open " << files[inputIndex]; + } + + auto fileSize = static_cast(binaryFile.tellg()); + binaryFile.seekg(0, std::ios_base::beg); + if (!binaryFile.good()) { + IE_THROW() << "Can not read " << files[inputIndex]; + } + auto inputSize = blob_size * sizeof(T) / batchSize; + if (fileSize != inputSize) { + IE_THROW() << "File " << files[inputIndex] << " contains " << std::to_string(fileSize) + << " bytes " + "but the network expects " + << std::to_string(inputSize); + } + + if (inputInfo.layout != "CN") { + binaryFile.read(&data[b * inputSize], inputSize); + } else { + for (int i = 0; i < inputInfo.channels(); i++) { + binaryFile.read(&data[(i * batchSize + b) * sizeof(T)], sizeof(T)); + } + } + + if (filenames_used) { + *filenames_used += (filenames_used->empty() ? "" : ", ") + files[inputIndex]; + } + } + + InferenceEngine::TensorDesc tDesc(inputInfo.precision, inputInfo.dataShape, inputInfo.originalLayout); + InferenceEngine::Blob::Ptr blob = + InferenceEngine::make_shared_blob(tDesc, + std::make_shared>((T*)data, blob_size * sizeof(T))); + blob->allocate(); + return blob; +} + +template +InferenceEngine::Blob::Ptr createBlobRandom(const benchmark_app::InputInfo& inputInfo, + T rand_min = std::numeric_limits::min(), + T rand_max = std::numeric_limits::max()) { + size_t blob_size = + std::accumulate(inputInfo.dataShape.begin(), inputInfo.dataShape.end(), 1, std::multiplies()); + T* data = new T[blob_size]; + + std::mt19937 gen(0); + uniformDistribution distribution(rand_min, rand_max); + for (size_t i = 0; i < blob_size; i++) { + data[i] = static_cast(distribution(gen)); + } + + InferenceEngine::TensorDesc tDesc(inputInfo.precision, inputInfo.dataShape, inputInfo.originalLayout); + InferenceEngine::Blob::Ptr blob = + InferenceEngine::make_shared_blob(tDesc, + std::make_shared>(data, blob_size * sizeof(T))); + blob->allocate(); + return blob; +} + +InferenceEngine::Blob::Ptr getImageBlob(const std::vector& files, + size_t inputId, + size_t batchSize, + const std::pair& inputInfo, + std::string* filenames_used = nullptr) { + auto precision = inputInfo.second.precision; + if (precision == InferenceEngine::Precision::FP32) { + return createBlobFromImage(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if (precision == InferenceEngine::Precision::FP16) { + return createBlobFromImage(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if (precision == InferenceEngine::Precision::I32) { + return createBlobFromImage(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if (precision == InferenceEngine::Precision::I64) { + return createBlobFromImage(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if (precision == InferenceEngine::Precision::U8) { + return createBlobFromImage(files, inputId, batchSize, inputInfo.second, filenames_used); + } else { + IE_THROW() << "Input precision is not supported for " << inputInfo.first; + } } -void fillBlobs(const std::vector& inputFiles, - const size_t& batchSize, - benchmark_app::InputsInfo& app_inputs_info, - std::vector requests) { - std::vector> input_image_sizes; - for (auto& item : app_inputs_info) { - if (item.second.isImage()) { - input_image_sizes.push_back(std::make_pair(item.second.width(), item.second.height())); - } - slog::info << "Network input '" << item.first << "' precision " << item.second.precision << ", dimensions (" - << item.second.layout << "): "; - for (const auto& i : item.second.shape) { - slog::info << i << " "; - } - slog::info << slog::endl; +InferenceEngine::Blob::Ptr getImInfoBlob(const std::pair& image_size, + size_t batchSize, + const std::pair& inputInfo) { + auto precision = inputInfo.second.precision; + if (precision == InferenceEngine::Precision::FP32) { + return createBlobImInfo(image_size, batchSize, inputInfo.second); + } else if (precision == InferenceEngine::Precision::FP16) { + return createBlobImInfo(image_size, batchSize, inputInfo.second); + } else if (precision == InferenceEngine::Precision::I32) { + return createBlobImInfo(image_size, batchSize, inputInfo.second); + } else if (precision == InferenceEngine::Precision::I64) { + return createBlobImInfo(image_size, batchSize, inputInfo.second); + } else { + IE_THROW() << "Input precision is not supported for " << inputInfo.first; + } +} + +InferenceEngine::Blob::Ptr getBinaryBlob(const std::vector& files, + size_t inputId, + size_t batchSize, + const std::pair& inputInfo, + std::string* filenames_used = nullptr) { + auto precision = inputInfo.second.precision; + if (precision == InferenceEngine::Precision::FP32) { + return createBlobFromBinary(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if (precision == InferenceEngine::Precision::FP16) { + return createBlobFromBinary(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if (precision == InferenceEngine::Precision::I32) { + return createBlobFromBinary(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if (precision == InferenceEngine::Precision::I64) { + return createBlobFromBinary(files, inputId, batchSize, inputInfo.second, filenames_used); + } else if ((precision == InferenceEngine::Precision::U8) || (precision == InferenceEngine::Precision::BOOL)) { + return createBlobFromBinary(files, inputId, batchSize, inputInfo.second, filenames_used); + } else { + IE_THROW() << "Input precision is not supported for " << inputInfo.first; + } +} + +InferenceEngine::Blob::Ptr getRandomBlob(const std::pair& inputInfo) { + auto precision = inputInfo.second.precision; + if (precision == InferenceEngine::Precision::FP32) { + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::FP16) { + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::I32) { + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::I64) { + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::U8) { + // uniform_int_distribution is not allowed in the C++17 + // standard and vs2017/19 + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::I8) { + // uniform_int_distribution is not allowed in the C++17 standard + // and vs2017/19 + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::U16) { + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::I16) { + return createBlobRandom(inputInfo.second); + } else if (precision == InferenceEngine::Precision::BOOL) { + return createBlobRandom(inputInfo.second, 0, 1); + } else { + IE_THROW() << "Input precision is not supported for " << inputInfo.first; + } +} + +std::string getTestInfoStreamHeader(benchmark_app::InputInfo& inputInfo) { + std::stringstream strOut; + strOut << "(" << inputInfo.layout << ", " << inputInfo.precision << ", " << getShapeString(inputInfo.dataShape) + << ", "; + if (inputInfo.partialShape.is_dynamic()) { + strOut << std::string("dyn:") << inputInfo.partialShape << "):\t"; + } else { + strOut << "static):\t"; + } + return strOut.str(); +} + +std::map> getBlobs( + std::map>& inputFiles, + std::vector& app_inputs_info) { + std::map> blobs; + if (app_inputs_info.empty()) { + throw std::logic_error("Inputs Info for network is empty!"); } - size_t imageInputCount = input_image_sizes.size(); - size_t binaryInputCount = app_inputs_info.size() - imageInputCount; + if (!inputFiles.empty() && inputFiles.size() != app_inputs_info[0].size()) { + throw std::logic_error("Number of inputs specified in -i must be equal number of network inputs!"); + } + + // count image type inputs of network + std::vector> net_input_im_sizes; + for (auto& inputs_info : app_inputs_info) { + for (auto& input : inputs_info) { + if (input.second.isImage()) { + net_input_im_sizes.push_back(std::make_pair(input.second.width(), input.second.height())); + } + } + } + + for (auto& files : inputFiles) { + if (!files.first.empty() && app_inputs_info[0].find(files.first) == app_inputs_info[0].end()) { + throw std::logic_error("Input name \"" + files.first + + "\" used in -i parameter doesn't match any network's input"); + } + + std::string input_name = files.first.empty() ? app_inputs_info[0].begin()->first : files.first; + auto input = app_inputs_info[0].at(input_name); + if (!files.second.empty() && files.second[0] != "random" && files.second[0] != "image_info") { + if (input.isImage()) { + files.second = filterFilesByExtensions(files.second, supported_image_extensions); + } else if (input.isImageInfo() && net_input_im_sizes.size() == app_inputs_info.size()) { + slog::info << "Input '" << input_name + << "' probably is image info. All files for this input will" + " be ignored." + << slog::endl; + files.second = {"image_info"}; + continue; + } else { + files.second = filterFilesByExtensions(files.second, supported_binary_extensions); + } + } + + if (files.second.empty()) { + slog::warn << "No suitable files for input found! Random data will be used for input " << input_name + << slog::endl; + files.second = {"random"}; + } + + size_t filesToBeUsed = 0; + size_t shapesToBeUsed = 0; + if (files.second.size() > app_inputs_info.size()) { + shapesToBeUsed = app_inputs_info.size(); + filesToBeUsed = files.second.size() - files.second.size() % app_inputs_info.size(); + if (filesToBeUsed != files.second.size()) { + slog::warn << "Number of files must be a multiple of the number of shapes for certain input. Only " + + std::to_string(filesToBeUsed) + " files will be added." + << slog::endl; + } + while (files.second.size() != filesToBeUsed) { + files.second.pop_back(); + } + } else { + shapesToBeUsed = app_inputs_info.size() - app_inputs_info.size() % files.second.size(); + filesToBeUsed = files.second.size(); + if (shapesToBeUsed != app_inputs_info.size()) { + slog::warn << "Number of data shapes must be a multiple of the number of files. For input " + << files.first << " only " + std::to_string(shapesToBeUsed) + " files will be added." + << slog::endl; + } + while (app_inputs_info.size() != shapesToBeUsed) { + app_inputs_info.pop_back(); + net_input_im_sizes.pop_back(); + } + } + } + + std::vector> logOutput; + // All inputs should process equal number of files, so for the case of N, 1, N number of files, + // second input also should have N blobs cloned from 1 file + size_t filesNum = 0; + if (!inputFiles.empty()) { + filesNum = std::max_element(inputFiles.begin(), + inputFiles.end(), + [](const std::pair>& a, + const std::pair>& b) { + return a.second.size() < b.second.size(); + }) + ->second.size(); + } else { + std::vector> net_input_im_sizes; + for (auto& input_info : app_inputs_info[0]) { + inputFiles[input_info.first] = {"random"}; + } + } + + for (const auto& files : inputFiles) { + std::string input_name = files.first.empty() ? app_inputs_info[0].begin()->first : files.first; + size_t n_shape = 0, m_file = 0; + while (n_shape < app_inputs_info.size() || m_file < filesNum) { + size_t batchSize = getBatchSize(app_inputs_info[n_shape % app_inputs_info.size()]); + size_t inputId = m_file % files.second.size(); + auto input_info = app_inputs_info[n_shape % app_inputs_info.size()].at(input_name); + + std::string blob_src_info; + if (files.second[0] == "random") { + // Fill random + blob_src_info = + "random (" + std::string((input_info.isImage() ? "image" : "binary data")) + " is expected)"; + blobs[input_name].push_back(getRandomBlob({input_name, input_info})); + } else if (files.second[0] == "image_info") { + // Most likely it is image info: fill with image information + auto image_size = net_input_im_sizes.at(n_shape % app_inputs_info.size()); + blob_src_info = + "Image size blob " + std::to_string(image_size.first) + " x " + std::to_string(image_size.second); + blobs[input_name].push_back(getImInfoBlob(image_size, batchSize, {input_name, input_info})); + } else if (input_info.isImage()) { + // Fill with Images + blobs[input_name].push_back( + getImageBlob(files.second, inputId, batchSize, {input_name, input_info}, &blob_src_info)); + } else { + // Fill with binary files + blobs[input_name].push_back( + getBinaryBlob(files.second, inputId, batchSize, {input_name, input_info}, &blob_src_info)); + } + + // Preparing info + std::string strOut = getTestInfoStreamHeader(input_info) + blob_src_info; + if (n_shape >= logOutput.size()) { + logOutput.resize(n_shape + 1); + } + logOutput[n_shape][input_name] += strOut; + + ++n_shape; + m_file += batchSize; + } + } + + for (int i = 0; i < logOutput.size(); i++) { + slog::info << "Test Config " << i << slog::endl; + auto maxNameWidth = std::max_element(logOutput[i].begin(), + logOutput[i].end(), + [](const std::pair& a, + const std::pair& b) { + return a.first.size() < b.first.size(); + }) + ->first.size(); + for (auto inputLog : logOutput[i]) { + slog::info << std::left << std::setw(maxNameWidth + 2) << inputLog.first << inputLog.second << slog::endl; + } + } + + return blobs; +} + +std::map> getBlobsStaticCase( + const std::vector& inputFiles, + const size_t& batchSize, + benchmark_app::InputsInfo& app_inputs_info, + size_t requestsNum) { + std::map> blobs; + + std::vector> net_input_im_sizes; + for (auto& item : app_inputs_info) { + if (item.second.isImage()) { + net_input_im_sizes.push_back(std::make_pair(item.second.width(), item.second.height())); + } + } + + size_t imageInputsNum = net_input_im_sizes.size(); + size_t binaryInputsNum = app_inputs_info.size() - imageInputsNum; std::vector binaryFiles; std::vector imageFiles; @@ -255,7 +517,7 @@ void fillBlobs(const std::vector& inputFiles, binaryFiles = filterFilesByExtensions(inputFiles, supported_binary_extensions); std::sort(std::begin(binaryFiles), std::end(binaryFiles)); - auto binaryToBeUsed = binaryInputCount * batchSize * requests.size(); + auto binaryToBeUsed = binaryInputsNum * batchSize * requestsNum; if (binaryToBeUsed > 0 && binaryFiles.empty()) { std::stringstream ss; for (auto& ext : supported_binary_extensions) { @@ -278,7 +540,7 @@ void fillBlobs(const std::vector& inputFiles, imageFiles = filterFilesByExtensions(inputFiles, supported_image_extensions); std::sort(std::begin(imageFiles), std::end(imageFiles)); - auto imagesToBeUsed = imageInputCount * batchSize * requests.size(); + auto imagesToBeUsed = imageInputsNum * batchSize * requestsNum; if (imagesToBeUsed > 0 && imageFiles.empty()) { std::stringstream ss; for (auto& ext : supported_image_extensions) { @@ -299,157 +561,129 @@ void fillBlobs(const std::vector& inputFiles, } } - for (size_t requestId = 0; requestId < requests.size(); requestId++) { - // slog::info << "Infer Request " << requestId << " filling" << slog::endl; + std::map> mappedFiles; + size_t imageInputsCount = 0; + size_t binaryInputsCount = 0; + for (auto& input : app_inputs_info) { + if (input.second.isImage()) { + mappedFiles[input.first] = {}; + for (size_t i = 0; i < imageFiles.size(); i += imageInputsNum) { + mappedFiles[input.first].push_back( + imageFiles[(imageInputsCount + i) * imageInputsNum % imageFiles.size()]); + } + ++imageInputsCount; + } else { + mappedFiles[input.first] = {}; + if (!binaryFiles.empty()) { + for (size_t i = 0; i < binaryFiles.size(); i += binaryInputsNum) { + mappedFiles[input.first].push_back(binaryFiles[(binaryInputsCount + i) % binaryFiles.size()]); + } + } + ++binaryInputsCount; + } + } + size_t filesNum = 0; + if (!inputFiles.empty()) { + filesNum = std::max_element(mappedFiles.begin(), + mappedFiles.end(), + [](const std::pair>& a, + const std::pair>& b) { + return a.second.size() < b.second.size(); + }) + ->second.size(); + } + size_t test_configs_num = filesNum / batchSize == 0 ? 1 : filesNum / batchSize; + std::vector> logOutput(test_configs_num); + for (const auto& files : mappedFiles) { size_t imageInputId = 0; size_t binaryInputId = 0; - for (auto& item : app_inputs_info) { - Blob::Ptr inputBlob = requests.at(requestId)->getBlob(item.first); - auto app_info = app_inputs_info.at(item.first); - auto precision = app_info.precision; - if (app_info.isImage()) { + auto input_name = files.first; + auto input_info = app_inputs_info.at(files.first); + + for (size_t i = 0; i < test_configs_num; ++i) { + std::string blob_src_info; + if (input_info.isImage()) { if (!imageFiles.empty()) { // Fill with Images - if (precision == InferenceEngine::Precision::FP32) { - fillBlobImage(inputBlob, - imageFiles, - batchSize, - app_info, - requestId, - imageInputId++, - imageInputCount); - } else if (precision == InferenceEngine::Precision::FP16) { - fillBlobImage(inputBlob, - imageFiles, - batchSize, - app_info, - requestId, - imageInputId++, - imageInputCount); - } else if (precision == InferenceEngine::Precision::I32) { - fillBlobImage(inputBlob, - imageFiles, - batchSize, - app_info, - requestId, - imageInputId++, - imageInputCount); - } else if (precision == InferenceEngine::Precision::I64) { - fillBlobImage(inputBlob, - imageFiles, - batchSize, - app_info, - requestId, - imageInputId++, - imageInputCount); - } else if (precision == InferenceEngine::Precision::U8) { - fillBlobImage(inputBlob, - imageFiles, - batchSize, - app_info, - requestId, - imageInputId++, - imageInputCount); - } else { - IE_THROW() << "Input precision is not supported for " << item.first; - } + blobs[input_name].push_back( + getImageBlob(files.second, imageInputId, batchSize, {input_name, input_info}, &blob_src_info)); + imageInputId = (imageInputId + batchSize) % files.second.size(); + logOutput[i][input_name] += getTestInfoStreamHeader(input_info) + blob_src_info; continue; } } else { if (!binaryFiles.empty()) { // Fill with binary files - if (precision == InferenceEngine::Precision::FP32) { - fillBlobBinary(inputBlob, - binaryFiles, - batchSize, - requestId, - binaryInputId++, - binaryInputCount); - } else if (precision == InferenceEngine::Precision::FP16) { - fillBlobBinary(inputBlob, - binaryFiles, - batchSize, - requestId, - binaryInputId++, - binaryInputCount); - } else if (precision == InferenceEngine::Precision::I32) { - fillBlobBinary(inputBlob, - binaryFiles, - batchSize, - requestId, - binaryInputId++, - binaryInputCount); - } else if (precision == InferenceEngine::Precision::I64) { - fillBlobBinary(inputBlob, - binaryFiles, - batchSize, - requestId, - binaryInputId++, - binaryInputCount); - } else if ((precision == InferenceEngine::Precision::U8) || - (precision == InferenceEngine::Precision::BOOL)) { - fillBlobBinary(inputBlob, - binaryFiles, - batchSize, - requestId, - binaryInputId++, - binaryInputCount); - } else { - IE_THROW() << "Input precision is not supported for " << item.first; - } + blobs[input_name].push_back(getBinaryBlob(files.second, + binaryInputId, + batchSize, + {input_name, input_info}, + &blob_src_info)); + binaryInputId = (binaryInputId + batchSize) % files.second.size(); + logOutput[i][input_name] += getTestInfoStreamHeader(input_info) + blob_src_info; continue; } - - if (app_info.isImageInfo() && (input_image_sizes.size() == 1)) { + if (input_info.isImageInfo() && (net_input_im_sizes.size() == 1)) { // Most likely it is image info: fill with image information - auto image_size = input_image_sizes.at(0); - slog::info << "Fill input '" << item.first << "' with image size " << image_size.first << "x" - << image_size.second << slog::endl; - if (precision == InferenceEngine::Precision::FP32) { - fillBlobImInfo(inputBlob, batchSize, image_size); - } else if (precision == InferenceEngine::Precision::FP16) { - fillBlobImInfo(inputBlob, batchSize, image_size); - } else if (precision == InferenceEngine::Precision::I32) { - fillBlobImInfo(inputBlob, batchSize, image_size); - } else if (precision == InferenceEngine::Precision::I64) { - fillBlobImInfo(inputBlob, batchSize, image_size); - } else { - IE_THROW() << "Input precision is not supported for image info!"; - } + auto image_size = net_input_im_sizes.at(0); + blob_src_info = "Image size blob " + std::to_string(image_size.first) + " x " + + std::to_string(image_size.second); + blobs[input_name].push_back(getImInfoBlob(image_size, batchSize, {input_name, input_info})); + logOutput[i][input_name] += getTestInfoStreamHeader(input_info) + blob_src_info; continue; } } // Fill random - // slog::info << "Fill input '" << item.first << "' with random values (" - // << std::string((app_info.isImage() ? "image" : "some binary data")) << " is - // expected)" - // << slog::endl; - if (precision == InferenceEngine::Precision::FP32) { - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::FP16) { - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::I32) { - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::I64) { - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::U8) { - // uniform_int_distribution is not allowed in the C++17 - // standard and vs2017/19 - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::I8) { - // uniform_int_distribution is not allowed in the C++17 standard - // and vs2017/19 - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::U16) { - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::I16) { - fillBlobRandom(inputBlob); - } else if (precision == InferenceEngine::Precision::BOOL) { - fillBlobRandom(inputBlob, 0, 1); - } else { - IE_THROW() << "Input precision is not supported for " << item.first; - } + blob_src_info = + "random (" + std::string((input_info.isImage() ? "image" : "binary data")) + " is expected)"; + blobs[input_name].push_back(getRandomBlob({input_name, input_info})); + logOutput[i][input_name] += getTestInfoStreamHeader(input_info) + blob_src_info; } } + + for (int i = 0; i < logOutput.size(); i++) { + slog::info << "Test Config " << i << slog::endl; + auto maxNameWidth = std::max_element(logOutput[i].begin(), + logOutput[i].end(), + [](const std::pair& a, + const std::pair& b) { + return a.first.size() < b.first.size(); + }) + ->first.size(); + for (auto inputLog : logOutput[i]) { + slog::info << std::left << std::setw(maxNameWidth + 2) << inputLog.first << inputLog.second << slog::endl; + } + } + + return blobs; +} + +void copyBlobData(InferenceEngine::Blob::Ptr& dst, const InferenceEngine::Blob::Ptr& src) { + if (src->getTensorDesc() != dst->getTensorDesc()) { + throw std::runtime_error( + "Source and destination blobs tensor descriptions are expected to be equal for data copying."); + } + + InferenceEngine::MemoryBlob::Ptr srcMinput = as(src); + if (!srcMinput) { + IE_THROW() << "We expect source blob to be inherited from MemoryBlob in " + "fillBlobImage, " + << "but by fact we were not able to cast source blob to MemoryBlob"; + } + // locked memory holder should be alive all time while access to its buffer + // happens + auto srcMinputHolder = srcMinput->wmap(); + auto srcBlobData = srcMinputHolder.as(); + + InferenceEngine::MemoryBlob::Ptr dstMinput = as(dst); + if (!dstMinput) { + IE_THROW() << "We expect destination blob to be inherited from MemoryBlob in " + "fillBlobImage, " + << "but by fact we were not able to cast destination blob to MemoryBlob"; + } + auto dstMinputHolder = dstMinput->wmap(); + auto dstBlobData = dstMinputHolder.as(); + + std::memcpy(dstBlobData, srcBlobData, src->byteSize()); } diff --git a/samples/cpp/benchmark_app/inputs_filling.hpp b/samples/cpp/benchmark_app/inputs_filling.hpp index 4f6f1a55272..fdbcce07fb3 100644 --- a/samples/cpp/benchmark_app/inputs_filling.hpp +++ b/samples/cpp/benchmark_app/inputs_filling.hpp @@ -14,7 +14,14 @@ #include "utils.hpp" // clang-format on -void fillBlobs(const std::vector& inputFiles, - const size_t& batchSize, - benchmark_app::InputsInfo& app_inputs_info, - std::vector requests); \ No newline at end of file +std::map> getBlobs( + std::map>& inputFiles, + std::vector& app_inputs_info); + +std::map> getBlobsStaticCase( + const std::vector& inputFiles, + const size_t& batchSize, + benchmark_app::InputsInfo& app_inputs_info, + size_t requestsNum); + +void copyBlobData(InferenceEngine::Blob::Ptr& dst, const InferenceEngine::Blob::Ptr& src); diff --git a/samples/cpp/benchmark_app/main.cpp b/samples/cpp/benchmark_app/main.cpp index 3fc33804197..0debab7af1b 100644 --- a/samples/cpp/benchmark_app/main.cpp +++ b/samples/cpp/benchmark_app/main.cpp @@ -34,14 +34,6 @@ using namespace InferenceEngine; static const size_t progressBarDefaultTotalCount = 1000; -uint64_t getDurationInMilliseconds(uint32_t duration) { - return duration * 1000LL; -} - -uint64_t getDurationInNanoseconds(uint32_t duration) { - return duration * 1000000000LL; -} - bool ParseAndCheckCommandLine(int argc, char* argv[]) { // ---------------------------Parsing and validating input // arguments-------------------------------------- @@ -104,7 +96,7 @@ static void next_step(const std::string additional_info = "") { {6, "Configuring input of the model"}, {7, "Loading the model to the device"}, {8, "Setting optimal runtime parameters"}, - {9, "Creating infer requests and filling input blobs with images"}, + {9, "Creating infer requests and preparing input blobs with data"}, {10, "Measuring performance"}, {11, "Dumping statistics report"}}; @@ -116,13 +108,6 @@ static void next_step(const std::string additional_info = "") { << (additional_info.empty() ? "" : " (" + additional_info + ")") << std::endl; } -template -T getMedianValue(const std::vector& vec, std::size_t percentile) { - std::vector sortedVec(vec); - std::sort(sortedVec.begin(), sortedVec.end()); - return sortedVec[(sortedVec.size() / 100) * percentile]; -} - /** * @brief The entry point of the benchmark application */ @@ -180,15 +165,15 @@ int main(int argc, char* argv[]) { load_config(FLAGS_load_config, config); } #endif - /** This vector stores paths to the processed images **/ - std::vector inputFiles; - parseInputFilesArguments(inputFiles); + /** This vector stores paths to the processed images with input names**/ + auto inputFiles = parseInputArguments(gflags::GetArgvs()); // ----------------- 2. Loading the Inference Engine // ----------------------------------------------------------- next_step(); Core ie; + if (FLAGS_d.find("CPU") != std::string::npos && !FLAGS_l.empty()) { // CPU (MKLDNN) extensions is loaded as a shared library and passed as a // pointer to base extension @@ -378,19 +363,10 @@ int main(int argc, char* argv[]) { ie.SetConfig(item.second, item.first); } - auto double_to_string = [](const double number) { - std::stringstream ss; - ss << std::fixed << std::setprecision(2) << number; - return ss.str(); - }; - auto get_total_ms_time = [](Time::time_point& startTime) { - return std::chrono::duration_cast(Time::now() - startTime).count() * 0.000001; - }; - size_t batchSize = FLAGS_b; Precision precision = Precision::UNSPECIFIED; std::string topology_name = ""; - benchmark_app::InputsInfo app_inputs_info; + std::vector app_inputs_info; std::string output_name; // Takes priority over config from file @@ -398,6 +374,7 @@ int main(int argc, char* argv[]) { ie.SetConfig({{CONFIG_KEY(CACHE_DIR), FLAGS_cache_dir}}); } + bool isDynamicNetwork = false; if (FLAGS_load_from_file && !isNetworkCompiled) { next_step(); slog::info << "Skipping the step for loading network from file" << slog::endl; @@ -407,14 +384,15 @@ int main(int argc, char* argv[]) { slog::info << "Skipping the step for loading network from file" << slog::endl; auto startTime = Time::now(); exeNetwork = ie.LoadNetwork(FLAGS_m, device_name); - auto duration_ms = double_to_string(get_total_ms_time(startTime)); + auto duration_ms = double_to_string(get_duration_ms_till_now(startTime)); slog::info << "Load network took " << duration_ms << " ms" << slog::endl; if (statistics) statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, {{"load network time (ms)", duration_ms}}); app_inputs_info = getInputsInfo(FLAGS_shape, FLAGS_layout, - FLAGS_b, + batchSize, + FLAGS_data_shape, FLAGS_iscale, FLAGS_imean, exeNetwork.GetInputsInfo()); @@ -430,7 +408,7 @@ int main(int argc, char* argv[]) { auto startTime = Time::now(); CNNNetwork cnnNetwork = ie.ReadNetwork(FLAGS_m); - auto duration_ms = double_to_string(get_total_ms_time(startTime)); + auto duration_ms = double_to_string(get_duration_ms_till_now(startTime)); slog::info << "Read network took " << duration_ms << " ms" << slog::endl; if (statistics) statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, @@ -444,34 +422,45 @@ int main(int argc, char* argv[]) { // ----------------- 5. Resizing network to match image sizes and given // batch ---------------------------------- next_step(); - batchSize = cnnNetwork.getBatchSize(); // Parse input shapes if specified bool reshape = false; app_inputs_info = getInputsInfo(FLAGS_shape, FLAGS_layout, FLAGS_b, + FLAGS_data_shape, FLAGS_iscale, FLAGS_imean, inputInfo, reshape); if (reshape) { - InferenceEngine::ICNNNetwork::InputShapes shapes = {}; - for (auto& item : app_inputs_info) - shapes[item.first] = item.second.shape; + benchmark_app::PartialShapes shapes = {}; + for (auto& item : app_inputs_info[0]) + shapes[item.first] = item.second.partialShape; slog::info << "Reshaping network: " << getShapesString(shapes) << slog::endl; startTime = Time::now(); cnnNetwork.reshape(shapes); - duration_ms = double_to_string(get_total_ms_time(startTime)); + duration_ms = double_to_string(get_duration_ms_till_now(startTime)); slog::info << "Reshape network took " << duration_ms << " ms" << slog::endl; if (statistics) statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, {{"reshape network time (ms)", duration_ms}}); } - // use batch size according to provided layout and shapes - batchSize = (!FLAGS_layout.empty()) ? getBatchSize(app_inputs_info) : cnnNetwork.getBatchSize(); - topology_name = cnnNetwork.getName(); - slog::info << (FLAGS_b != 0 ? "Network batch size was changed to: " : "Network batch size: ") << batchSize + + // Check if network has dynamic shapes + auto input_info = app_inputs_info[0]; + isDynamicNetwork = std::any_of(input_info.begin(), + input_info.end(), + [](const std::pair& i) { + return i.second.partialShape.is_dynamic(); + }); + + // use batch size according to provided layout and shapes (static case) + if (batchSize == 0 || !isDynamicNetwork) { + batchSize = (!FLAGS_layout.empty()) ? getBatchSize(app_inputs_info[0]) : cnnNetwork.getBatchSize(); + } + + slog::info << (batchSize != 0 ? "Network batch size was changed to: " : "Network batch size: ") << batchSize << slog::endl; // ----------------- 6. Configuring inputs and outputs @@ -482,11 +471,12 @@ int main(int argc, char* argv[]) { for (auto& item : cnnNetwork.getInputsInfo()) { // if precision for input set by user, then set it to app_inputs // if it an image, set U8 - if (!FLAGS_ip.empty() || FLAGS_iop.find(item.first) != std::string::npos) { - app_inputs_info.at(item.first).precision = item.second->getPrecision(); - } else if (app_inputs_info.at(item.first).isImage()) { - app_inputs_info.at(item.first).precision = Precision::U8; - item.second->setPrecision(app_inputs_info.at(item.first).precision); + if (!FLAGS_ip.empty() || FLAGS_iop.find(item.first) != std::string::npos || + item.second->getPartialShape().is_dynamic()) { + app_inputs_info[0].at(item.first).precision = item.second->getPrecision(); + } else if (app_inputs_info[0].at(item.first).isImage()) { + app_inputs_info[0].at(item.first).precision = Precision::U8; + item.second->setPrecision(app_inputs_info[0].at(item.first).precision); } } @@ -496,7 +486,7 @@ int main(int argc, char* argv[]) { next_step(); startTime = Time::now(); exeNetwork = ie.LoadNetwork(cnnNetwork, device_name); - duration_ms = double_to_string(get_total_ms_time(startTime)); + duration_ms = double_to_string(get_duration_ms_till_now(startTime)); slog::info << "Load network took " << duration_ms << " ms" << slog::endl; if (statistics) statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, @@ -513,7 +503,7 @@ int main(int argc, char* argv[]) { next_step(); auto startTime = Time::now(); exeNetwork = ie.ImportNetwork(FLAGS_m, device_name, {}); - auto duration_ms = double_to_string(get_total_ms_time(startTime)); + auto duration_ms = double_to_string(get_duration_ms_till_now(startTime)); slog::info << "Import network took " << duration_ms << " ms" << slog::endl; if (statistics) statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, @@ -521,6 +511,7 @@ int main(int argc, char* argv[]) { app_inputs_info = getInputsInfo(FLAGS_shape, FLAGS_layout, FLAGS_b, + FLAGS_data_shape, FLAGS_iscale, FLAGS_imean, exeNetwork.GetInputsInfo()); @@ -528,6 +519,23 @@ int main(int argc, char* argv[]) { batchSize = 1; } } + + if (isDynamicNetwork && FLAGS_api == "sync") { + throw std::logic_error("Benchmarking of the model with dynamic shapes is available for async API only." + "Please use -api async -nstreams 1 -nireq 1 to emulate sync behavior"); + } + + // Defining of benchmark mode + // for static models inference only mode is used as default one + bool inferenceOnly = FLAGS_inference_only; + if (isDynamicNetwork) { + if (isFlagSetInCommandLine("inference_only") && inferenceOnly && app_inputs_info.size() != 1) { + throw std::logic_error( + "Dynamic models with different input data shapes must be benchmarked only in full mode."); + } + inferenceOnly = isFlagSetInCommandLine("inference_only") && inferenceOnly && app_inputs_info.size() == 1; + } + // ----------------- 8. Querying optimal runtime parameters // ----------------------------------------------------- next_step(); @@ -573,11 +581,21 @@ int main(int argc, char* argv[]) { // Iteration limit uint32_t niter = FLAGS_niter; + size_t shape_groups_num = app_inputs_info.size(); if ((niter > 0) && (FLAGS_api == "async")) { - niter = ((niter + nireq - 1) / nireq) * nireq; - if (FLAGS_niter != niter) { - slog::warn << "Number of iterations was aligned by request number from " << FLAGS_niter << " to " - << niter << " using number of requests " << nireq << slog::endl; + if (shape_groups_num > nireq) { + niter = ((niter + shape_groups_num - 1) / shape_groups_num) * shape_groups_num; + if (FLAGS_niter != niter) { + slog::warn << "Number of iterations was aligned by data shape groups number from " << FLAGS_niter + << " to " << niter << " using number of possible input shapes " << shape_groups_num + << slog::endl; + } + } else { + niter = ((niter + nireq - 1) / nireq) * nireq; + if (FLAGS_niter != niter) { + slog::warn << "Number of iterations was aligned by request number from " << FLAGS_niter << " to " + << niter << " using number of requests " << nireq << slog::endl; + } } } @@ -596,6 +614,7 @@ int main(int argc, char* argv[]) { statistics->addParameters( StatisticsReport::Category::RUNTIME_CONFIG, { + {"benchmark mode", inferenceOnly ? "inference only" : "full"}, {"topology", topology_name}, {"target device", device_name}, {"API", FLAGS_api}, @@ -619,18 +638,46 @@ int main(int argc, char* argv[]) { // ---------------------------------------- next_step(); - InferRequestsQueue inferRequestsQueue(exeNetwork, nireq); - if (isFlagSetInCommandLine("use_device_mem")) { - if (device_name.find("GPU") == 0) - ::gpu::fillRemoteBlobs(inputFiles, batchSize, app_inputs_info, inferRequestsQueue.requests, exeNetwork); - else if (device_name.find("CPU") == 0) - fillBlobs(inputFiles, batchSize, app_inputs_info, inferRequestsQueue.requests); - else - IE_THROW() << "Requested device doesn't support `use_device_mem` option."; - } else { - fillBlobs(inputFiles, batchSize, app_inputs_info, inferRequestsQueue.requests); - } + InferRequestsQueue inferRequestsQueue(exeNetwork, nireq, app_inputs_info.size(), FLAGS_pcseq); + bool inputHasName = false; + if (inputFiles.size() > 0) { + inputHasName = inputFiles.begin()->first != ""; + } + bool newInputType = isDynamicNetwork || inputHasName; + // create vector to store remote input blobs buffer + std::vector<::gpu::BufferType> clInputsBuffer; + bool useGpuMem = false; + + std::map> inputsData; + if (isFlagSetInCommandLine("use_device_mem")) { + if (device_name.find("GPU") == 0) { + inputsData = ::gpu::getRemoteInputBlobs(inputFiles, app_inputs_info, exeNetwork, clInputsBuffer); + useGpuMem = true; + } else if (device_name.find("CPU") == 0) { + if (newInputType) { + inputsData = getBlobs(inputFiles, app_inputs_info); + } else { + inputsData = + getBlobsStaticCase(inputFiles.empty() ? std::vector{} : inputFiles.begin()->second, + batchSize, + app_inputs_info[0], + nireq); + } + } else { + IE_THROW() << "Requested device doesn't support `use_device_mem` option."; + } + } else { + if (newInputType) { + inputsData = getBlobs(inputFiles, app_inputs_info); + } else { + inputsData = + getBlobsStaticCase(inputFiles.empty() ? std::vector{} : inputFiles.begin()->second, + batchSize, + app_inputs_info[0], + nireq); + } + } // ----------------- 10. Measuring performance // ------------------------------------------------------------------ size_t progressCnt = 0; @@ -668,26 +715,91 @@ int main(int argc, char* argv[]) { } ss << niter << " iterations"; } + next_step(ss.str()); + if (inferenceOnly) { + slog::info << "BENCHMARK IS IN INFERENCE ONLY MODE." << slog::endl; + slog::info << "Input blobs will be filled once before performance measurements." << slog::endl; + } else { + slog::info << "BENCHMARK IS IN FULL MODE." << slog::endl; + slog::info << "Inputs setup stage will be included in performance measurements." << slog::endl; + } + + // copy prepared data straight into inferRequest->getBlob() + // for inference only mode + if (inferenceOnly) { + if (nireq < inputsData.begin()->second.size()) + slog::warn << "Only " << nireq << " test configs will be used." << slog::endl; + size_t i = 0; + for (auto& inferRequest : inferRequestsQueue.requests) { + auto inputs = app_inputs_info[i % app_inputs_info.size()]; + for (auto& item : inputs) { + auto inputName = item.first; + const auto& inputBlob = inputsData.at(inputName)[i % inputsData.at(inputName).size()]; + // for remote blobs setBlob is used, they are already allocated on the device + if (useGpuMem) { + inferRequest->setBlob(inputName, inputBlob); + } else { + InferenceEngine::Blob::Ptr requestBlob = inferRequest->getBlob(inputName); + if (isDynamicNetwork) { + requestBlob->setShape(inputBlob->getTensorDesc().getDims()); + } + copyBlobData(requestBlob, inputBlob); + } + } + + if (useGpuMem) { + auto outputBlobs = ::gpu::getRemoteOutputBlobs(exeNetwork, inferRequest->getOutputClBuffer()); + for (auto& output : exeNetwork.GetOutputsInfo()) { + inferRequest->setBlob(output.first, outputBlobs[output.first]); + } + } + ++i; + } + } + // warming up - out of scope auto inferRequest = inferRequestsQueue.getIdleRequest(); if (!inferRequest) { IE_THROW() << "No idle Infer Requests!"; } + + if (!inferenceOnly) { + auto inputs = app_inputs_info[0]; + + for (auto& item : inputs) { + auto inputName = item.first; + const auto& data = inputsData.at(inputName)[0]; + inferRequest->setBlob(inputName, data); + } + + if (useGpuMem) { + auto outputBlobs = ::gpu::getRemoteOutputBlobs(exeNetwork, inferRequest->getOutputClBuffer()); + for (auto& output : exeNetwork.GetOutputsInfo()) { + inferRequest->setBlob(output.first, outputBlobs[output.first]); + } + } + } + if (FLAGS_api == "sync") { inferRequest->infer(); } else { inferRequest->startAsync(); } + inferRequestsQueue.waitAll(); + auto duration_ms = double_to_string(inferRequestsQueue.getLatencies()[0]); slog::info << "First inference took " << duration_ms << " ms" << slog::endl; - if (statistics) + + if (statistics) { statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, {{"first inference time (ms)", duration_ms}}); + } inferRequestsQueue.resetTimes(); + size_t processedFramesN = 0; auto startTime = Time::now(); auto execTime = std::chrono::duration_cast(Time::now() - startTime).count(); @@ -695,7 +807,6 @@ int main(int argc, char* argv[]) { /** to align number if iterations to guarantee that last infer requests are * executed in the same conditions **/ ProgressBar progressBar(progressBarTotalCount, FLAGS_stream_output, FLAGS_progress); - while ((niter != 0LL && iteration < niter) || (duration_nanoseconds != 0LL && (uint64_t)execTime < duration_nanoseconds) || (FLAGS_api == "async" && iteration % nireq != 0)) { @@ -704,6 +815,31 @@ int main(int argc, char* argv[]) { IE_THROW() << "No idle Infer Requests!"; } + if (!inferenceOnly) { + auto inputs = app_inputs_info[iteration % app_inputs_info.size()]; + + if (FLAGS_pcseq) { + inferRequest->setLatencyGroupId(iteration % app_inputs_info.size()); + } + + if (isDynamicNetwork) { + batchSize = getBatchSize(inputs); + } + + for (auto& item : inputs) { + auto inputName = item.first; + const auto& data = inputsData.at(inputName)[iteration % inputsData.at(inputName).size()]; + inferRequest->setBlob(inputName, data); + } + + if (useGpuMem) { + auto outputBlobs = ::gpu::getRemoteOutputBlobs(exeNetwork, inferRequest->getOutputClBuffer()); + for (auto& output : exeNetwork.GetOutputsInfo()) { + inferRequest->setBlob(output.first, outputBlobs[output.first]); + } + } + } + if (FLAGS_api == "sync") { inferRequest->infer(); } else { @@ -716,9 +852,10 @@ int main(int argc, char* argv[]) { inferRequest->wait(); inferRequest->startAsync(); } - iteration++; + ++iteration; execTime = std::chrono::duration_cast(Time::now() - startTime).count(); + processedFramesN += batchSize; if (niter > 0) { progressBar.addProgress(1); @@ -737,10 +874,17 @@ int main(int argc, char* argv[]) { // wait the latest inference executions inferRequestsQueue.waitAll(); - double latency = getMedianValue(inferRequestsQueue.getLatencies(), FLAGS_latency_percentile); + LatencyMetrics generalLatency(inferRequestsQueue.getLatencies()); + std::vector groupLatencies = {}; + if (FLAGS_pcseq && app_inputs_info.size() > 1) { + for (auto lats : inferRequestsQueue.getLatencyGroups()) { + groupLatencies.push_back(LatencyMetrics(lats)); + } + } + double totalDuration = inferRequestsQueue.getDurationInMilliseconds(); - double fps = - (FLAGS_api == "sync") ? batchSize * 1000.0 / latency : batchSize * 1000.0 * iteration / totalDuration; + double fps = (FLAGS_api == "sync") ? batchSize * 1000.0 / generalLatency.percentile(FLAGS_latency_percentile) + : 1000.0 * processedFramesN / totalDuration; if (statistics) { statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, @@ -751,19 +895,67 @@ int main(int argc, char* argv[]) { if (device_name.find("MULTI") == std::string::npos) { std::string latency_label; if (FLAGS_latency_percentile == 50) { - latency_label = "latency (ms)"; + latency_label = "Median latency (ms)"; } else { latency_label = "latency (" + std::to_string(FLAGS_latency_percentile) + " percentile) (ms)"; } + statistics->addParameters( + StatisticsReport::Category::EXECUTION_RESULTS, + { + {latency_label, double_to_string(generalLatency.percentile(FLAGS_latency_percentile))}, + }); statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, { - {latency_label, double_to_string(latency)}, + {"Average latency (ms)", double_to_string(generalLatency.average())}, }); + statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, + { + {"Min latency (ms)", double_to_string(generalLatency.min())}, + }); + statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, + { + {"Max latency (ms)", double_to_string(generalLatency.max())}, + }); + + if (FLAGS_pcseq && app_inputs_info.size() > 1) { + statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, + { + {"Latency for each data shape group:", ""}, + }); + for (size_t i = 0; i < app_inputs_info.size(); ++i) { + std::string data_shapes_string = ""; + data_shapes_string += std::to_string(i + 1) + ". "; + for (auto& item : app_inputs_info[i]) { + data_shapes_string += item.first + " : " + getShapeString(item.second.dataShape) + " "; + } + statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, + { + {data_shapes_string, ""}, + }); + statistics->addParameters( + StatisticsReport::Category::EXECUTION_RESULTS, + { + {latency_label, + double_to_string(groupLatencies[i].percentile(FLAGS_latency_percentile))}, + }); + statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, + { + {"Average (ms)", double_to_string(groupLatencies[i].average())}, + }); + statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, + { + {"Min (ms)", double_to_string(groupLatencies[i].min())}, + }); + statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, + { + {"Max (ms)", double_to_string(groupLatencies[i].max())}, + }); + } + } } statistics->addParameters(StatisticsReport::Category::EXECUTION_RESULTS, {{"throughput", double_to_string(fps)}}); } - progressBar.finish(); // ----------------- 11. Dumping statistics report @@ -805,18 +997,32 @@ int main(int argc, char* argv[]) { if (statistics) statistics->dump(); - std::cout << "Count: " << iteration << " iterations" << std::endl; - std::cout << "Duration: " << double_to_string(totalDuration) << " ms" << std::endl; + // Performance metrics report + slog::info << "Count: " << iteration << " iterations" << slog::endl; + slog::info << "Duration: " << double_to_string(totalDuration) << " ms" << slog::endl; if (device_name.find("MULTI") == std::string::npos) { - std::cout << "Latency"; - if (FLAGS_latency_percentile == 50) { - std::cout << ": "; - } else { - std::cout << " (" << FLAGS_latency_percentile << " percentile): "; + slog::info << "Latency: " << slog::endl; + generalLatency.logTotal(FLAGS_latency_percentile); + + if (FLAGS_pcseq && app_inputs_info.size() > 1) { + slog::info << "Latency for each data shape group:" << slog::endl; + for (size_t i = 0; i < app_inputs_info.size(); ++i) { + slog::info << (i + 1) << "."; + for (auto& item : app_inputs_info[i]) { + std::stringstream input_shape; + auto shape = item.second.dataShape; + std::copy(shape.begin(), shape.end() - 1, std::ostream_iterator(input_shape, ",")); + input_shape << shape.back(); + slog::info << " " << item.first << " : " << getShapeString(item.second.dataShape); + } + slog::info << slog::endl; + + groupLatencies[i].logTotal(FLAGS_latency_percentile); + } } - std::cout << double_to_string(latency) << " ms" << std::endl; } - std::cout << "Throughput: " << double_to_string(fps) << " FPS" << std::endl; + slog::info << "Throughput: " << double_to_string(fps) << " FPS" << slog::endl; + } catch (const std::exception& ex) { slog::err << ex.what() << slog::endl; diff --git a/samples/cpp/benchmark_app/remote_blobs_filling.cpp b/samples/cpp/benchmark_app/remote_blobs_filling.cpp index ea2cc924ebc..6a98825f87c 100644 --- a/samples/cpp/benchmark_app/remote_blobs_filling.cpp +++ b/samples/cpp/benchmark_app/remote_blobs_filling.cpp @@ -2,12 +2,15 @@ // SPDX-License-Identifier: Apache-2.0 // -// clang-format off #include +#include #include #include #include +// clang-format off +#include + #include "remote_blobs_filling.hpp" // clang-format on @@ -85,59 +88,99 @@ size_t getBytesPerElement(InferenceEngine::Precision precision) { } } -void fillRemoteBlobs(const std::vector& inputFiles, - const size_t& batchSize, - benchmark_app::InputsInfo& app_inputs_info, - std::vector requests, - const InferenceEngine::ExecutableNetwork& exeNetwork) { +std::map> getRemoteInputBlobs( + const std::map>& inputFiles, + const std::vector& app_inputs_info, + const InferenceEngine::ExecutableNetwork& exeNetwork, + std::vector& clBuffer) { #ifdef HAVE_DEVICE_MEM_SUPPORT slog::info << "Device memory will be used for input and output blobs" << slog::endl; if (inputFiles.size()) { slog::warn << "Device memory supports only random data at this moment, input images will be ignored" << slog::endl; } + + std::map> remoteBlobs; auto context = exeNetwork.GetContext(); auto oclContext = std::dynamic_pointer_cast(context)->get(); auto oclInstance = std::make_shared(oclContext); - auto setShared = [&](size_t requestId, - const std::string name, - const InferenceEngine::TensorDesc& desc, - bool fillRandom = false) { + auto setShared = [&](const std::string name, const InferenceEngine::TensorDesc& desc, bool fillRandom = false) { cl_int err; auto inputDims = desc.getDims(); auto elementsNum = std::accumulate(begin(inputDims), end(inputDims), 1, std::multiplies()); auto inputSize = elementsNum * getBytesPerElement(desc.getPrecision()); - cl::Buffer sharedBuffer = - cl::Buffer(oclInstance->_context, CL_MEM_READ_WRITE, (cl::size_type)inputSize, NULL, &err); + clBuffer.push_back(cl::Buffer(oclInstance->_context, CL_MEM_READ_WRITE, (cl::size_type)inputSize, NULL, &err)); if (fillRandom) { - void* mappedPtr = oclInstance->_queue.enqueueMapBuffer(sharedBuffer, + void* mappedPtr = oclInstance->_queue.enqueueMapBuffer(clBuffer.back(), CL_TRUE, CL_MEM_READ_WRITE, 0, (cl::size_type)inputSize); fillBuffer(mappedPtr, elementsNum, desc.getPrecision()); - oclInstance->_queue.enqueueUnmapMemObject(sharedBuffer, mappedPtr); + oclInstance->_queue.enqueueUnmapMemObject(clBuffer.back(), mappedPtr); } - InferenceEngine::Blob::Ptr sharedBlob = InferenceEngine::gpu::make_shared_blob(desc, context, sharedBuffer); - sharedBlob->allocate(); - - requests.at(requestId)->setBlob(name, sharedBlob); + auto blob = InferenceEngine::gpu::make_shared_blob(desc, context, clBuffer.back()); + blob->allocate(); + remoteBlobs[name].push_back(blob); }; - for (size_t requestId = 0; requestId < requests.size(); requestId++) { - for (auto& item : exeNetwork.GetInputsInfo()) - setShared(requestId, item.first, item.second->getTensorDesc(), true); - - for (auto& item : exeNetwork.GetOutputsInfo()) - setShared(requestId, item.first, item.second->getTensorDesc()); + for (auto& inputs_info : app_inputs_info) { + for (auto& input : inputs_info) { + // Fill random + slog::info << "Prepare remote blob for input '" << input.first << "' with random values (" + << std::string((input.second.isImage() ? "image" : "some binary data")) << " is expected)" + << slog::endl; + setShared(input.first, + InferenceEngine::TensorDesc(input.second.precision, + input.second.dataShape, + getLayoutFromString(input.second.layout)), + true); + } } + + return remoteBlobs; #else IE_THROW() << "Device memory requested for GPU device, but OpenCL was not linked"; #endif } +std::map getRemoteOutputBlobs( + const InferenceEngine::ExecutableNetwork& exeNetwork, + std::map& clBuffer) { +#ifdef HAVE_DEVICE_MEM_SUPPORT + std::map outputBlobs; + for (auto& output : exeNetwork.GetOutputsInfo()) { + cl_int err; + auto context = exeNetwork.GetContext(); + auto oclContext = std::dynamic_pointer_cast(context)->get(); + auto oclInstance = std::make_shared(oclContext); + + auto desc = output.second->getTensorDesc(); + auto inputDims = desc.getDims(); + auto elementsNum = std::accumulate(begin(inputDims), end(inputDims), 1, std::multiplies()); + auto inputSize = elementsNum * getBytesPerElement(desc.getPrecision()); + + cl::size_type bufferSize = 0; + if (clBuffer.find(output.first) == clBuffer.end()) { + clBuffer[output.first] = + cl::Buffer(oclInstance->_context, CL_MEM_READ_WRITE, (cl::size_type)inputSize, NULL, &err); + } else { + auto& buff = clBuffer[output.first]; + buff.getInfo(CL_MEM_SIZE, &bufferSize); + if (inputSize != bufferSize) { + buff = cl::Buffer(oclInstance->_context, CL_MEM_READ_WRITE, (cl::size_type)inputSize, NULL, &err); + } + } + outputBlobs[output.first] = InferenceEngine::gpu::make_shared_blob(desc, context, clBuffer[output.first]); + } + + return outputBlobs; +#else + IE_THROW() << "Device memory requested for GPU device, but OpenCL was not linked"; +#endif +} } // namespace gpu diff --git a/samples/cpp/benchmark_app/remote_blobs_filling.hpp b/samples/cpp/benchmark_app/remote_blobs_filling.hpp index e3a10e96263..73ce0e5e4ab 100644 --- a/samples/cpp/benchmark_app/remote_blobs_filling.hpp +++ b/samples/cpp/benchmark_app/remote_blobs_filling.hpp @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // +#pragma once + #if defined(HAVE_GPU_DEVICE_MEM_SUPPORT) # define HAVE_DEVICE_MEM_SUPPORT # include "gpu/gpu_context_api_ocl.hpp" @@ -10,13 +12,14 @@ // clang-format off #include "inference_engine.hpp" -#include "infer_request_wrap.hpp" #include "utils.hpp" // clang-format on namespace gpu { #ifdef HAVE_DEVICE_MEM_SUPPORT +using BufferType = cl::Buffer; + struct OpenCL { cl::Context _context; cl::Device _device; @@ -55,12 +58,18 @@ struct OpenCL { _queue = cl::CommandQueue(_context, _device, props); } }; +#else +using BufferType = void*; #endif -void fillRemoteBlobs(const std::vector& inputFiles, - const size_t& batchSize, - benchmark_app::InputsInfo& app_inputs_info, - std::vector requests, - const InferenceEngine::ExecutableNetwork& exeNetwork); +std::map> getRemoteInputBlobs( + const std::map>& inputFiles, + const std::vector& app_inputs_info, + const InferenceEngine::ExecutableNetwork& exeNetwork, + std::vector& clBuffer); + +std::map getRemoteOutputBlobs( + const InferenceEngine::ExecutableNetwork& exeNetwork, + std::map& clBuffer); } // namespace gpu diff --git a/samples/cpp/benchmark_app/shared_blob_allocator.hpp b/samples/cpp/benchmark_app/shared_blob_allocator.hpp new file mode 100644 index 00000000000..189c522e0d4 --- /dev/null +++ b/samples/cpp/benchmark_app/shared_blob_allocator.hpp @@ -0,0 +1,43 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include "ie_allocator.hpp" + +template +class SharedBlobAllocator : public InferenceEngine::IAllocator { +public: + SharedBlobAllocator(const T* data, size_t size) : data(data), size(size){}; + + ~SharedBlobAllocator() { + free((void*)data); + }; + + void* lock(void* handle, InferenceEngine::LockOp op = InferenceEngine::LOCK_FOR_WRITE) noexcept override { + if (handle == data) { + return (void*)data; + } + return nullptr; + } + + void unlock(void* handle) noexcept override{}; + + void* alloc(size_t size) noexcept override { + return size <= this->size ? (void*)data : nullptr; + }; + + bool free(void* handle) noexcept override { + if (handle == data) { + delete[] data; + data = nullptr; + return true; + } + return false; + }; + +private: + const T* data; + size_t size; +}; diff --git a/samples/cpp/benchmark_app/statistics_report.hpp b/samples/cpp/benchmark_app/statistics_report.hpp index 0325c7e58de..9ae3c34143e 100644 --- a/samples/cpp/benchmark_app/statistics_report.hpp +++ b/samples/cpp/benchmark_app/statistics_report.hpp @@ -11,9 +11,12 @@ // clang-format off #include "inference_engine.hpp" + #include "samples/common.hpp" #include "samples/csv_dumper.hpp" #include "samples/slog.hpp" + +#include "utils.hpp" // clang-format on // @brief statistics reports types @@ -21,6 +24,53 @@ static constexpr char noCntReport[] = "no_counters"; static constexpr char averageCntReport[] = "average_counters"; static constexpr char detailedCntReport[] = "detailed_counters"; +/// @brief Responsible for calculating different latency metrics +class LatencyMetrics { +public: + LatencyMetrics() = delete; + + LatencyMetrics(const std::vector& latencies) : latencies(latencies) { + if (latencies.empty()) { + throw std::logic_error("Latency metrics class expects non-empty vector of latencies at consturction."); + } + std::sort(this->latencies.begin(), this->latencies.end()); + } + + LatencyMetrics(std::vector&& latencies) : latencies(latencies) { + if (latencies.empty()) { + throw std::logic_error("Latency metrics class expects non-empty vector of latencies at consturction."); + } + std::sort(this->latencies.begin(), this->latencies.end()); + } + + double min() { + return latencies[0]; + } + + double average() { + return std::accumulate(latencies.begin(), latencies.end(), 0.0) / latencies.size(); + } + + double percentile(std::size_t p) { + return latencies[size_t(latencies.size() / 100.0 * p)]; + } + + double max() { + return latencies.back(); + } + + void logTotal(size_t p) { + std::string percentileStr = (p == 50) ? "\tMedian: " : "\t" + std::to_string(p) + " percentile: "; + slog::info << percentileStr << double_to_string(percentile(p)) << " ms" << slog::endl; + slog::info << "\tAvg: " << double_to_string(average()) << " ms" << slog::endl; + slog::info << "\tMin: " << double_to_string(min()) << " ms" << slog::endl; + slog::info << "\tMax: " << double_to_string(max()) << " ms" << slog::endl; + } + +private: + std::vector latencies; +}; + /// @brief Responsible for collecting of statistics and dumping to .csv file class StatisticsReport { public: diff --git a/samples/cpp/benchmark_app/utils.cpp b/samples/cpp/benchmark_app/utils.cpp index d5f7b293b65..734c096abde 100644 --- a/samples/cpp/benchmark_app/utils.cpp +++ b/samples/cpp/benchmark_app/utils.cpp @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // -// clang-format off #include #include #include @@ -10,8 +9,10 @@ #include #include -#include "samples/common.hpp" -#include "samples/slog.hpp" +// clang-format off +#include +#include +#include #include "utils.hpp" // clang-format on @@ -35,7 +36,7 @@ size_t InputInfo::getDimentionByLayout(char character) const { size_t pos = layout.find(character); if (pos == std::string::npos) throw std::runtime_error("Error: Can't get " + std::string(character, 1) + " from layout " + layout); - return shape.at(pos); + return dataShape.at(pos); } size_t InputInfo::width() const { return getDimentionByLayout('W'); @@ -154,8 +155,8 @@ size_t getBatchSize(const benchmark_app::InputsInfo& inputs_info) { std::size_t batch_index = info.second.layout.find("N"); if (batch_index != std::string::npos) { if (batch_size == 0) - batch_size = info.second.shape[batch_index]; - else if (batch_size != info.second.shape[batch_index]) + batch_size = info.second.dataShape[batch_index]; + else if (batch_size != info.second.dataShape[batch_index]) throw std::logic_error("Can't deterimine batch size: batch is " "different for different inputs!"); } @@ -165,6 +166,47 @@ size_t getBatchSize(const benchmark_app::InputsInfo& inputs_info) { return batch_size; } +InferenceEngine::Layout getLayoutFromString(const std::string& string_layout) { + static const std::unordered_map layouts = { + {"NCHW", InferenceEngine::Layout::NCHW}, + {"NHWC", InferenceEngine::Layout::NHWC}, + {"NCDHW", InferenceEngine::Layout::NCDHW}, + {"NDHWC", InferenceEngine::Layout::NDHWC}, + {"C", InferenceEngine::Layout::C}, + {"CHW", InferenceEngine::Layout::CHW}, + {"HWC", InferenceEngine::Layout::HWC}, + {"HW", InferenceEngine::Layout::HW}, + {"NC", InferenceEngine::Layout::NC}, + {"CN", InferenceEngine::Layout::CN}}; + auto it = layouts.find(string_layout); + if (it != layouts.end()) { + return it->second; + } + IE_THROW() << "Unknown layout with name '" << string_layout << "'."; +} + +std::string getShapeString(const InferenceEngine::SizeVector& shape) { + std::stringstream ss; + ss << "["; + for (size_t i = 0; i < shape.size(); ++i) { + if (i > 0) + ss << ", "; + ss << shape.at(i); + } + ss << "]"; + return ss.str(); +} + +std::string getShapesString(const benchmark_app::PartialShapes& shapes) { + std::stringstream ss; + for (auto& shape : shapes) { + if (!ss.str().empty()) + ss << ", "; + ss << "\'" << shape.first << "': " << shape.second; + } + return ss.str(); +} + std::string getShapesString(const InferenceEngine::ICNNNetwork::InputShapes& shapes) { std::stringstream ss; for (auto& shape : shapes) { @@ -220,6 +262,120 @@ std::map> parseScaleOrMean(const std::string& sc return return_value; } +std::vector parsePartialShape(const std::string& partial_shape) { + std::vector shape; + for (auto& dim : split(partial_shape, ',')) { + if (dim == "?" || dim == "-1") { + shape.push_back(ngraph::Dimension::dynamic()); + } else { + const std::string range_divider = ".."; + size_t range_index = dim.find(range_divider); + if (range_index != std::string::npos) { + std::string min = dim.substr(0, range_index); + std::string max = dim.substr(range_index + range_divider.length()); + shape.push_back(ngraph::Dimension(min.empty() ? 0 : std::stoi(min), + max.empty() ? ngraph::Interval::s_max : std::stoi(max))); + } else { + shape.push_back(std::stoi(dim)); + } + } + } + + return shape; +} + +InferenceEngine::SizeVector parseTensorShape(const std::string& dataShape) { + std::vector shape; + for (auto& dim : split(dataShape, ',')) { + shape.push_back(std::stoi(dim)); + } + return shape; +} + +std::pair> parseInputFiles(const std::string& file_paths_string) { + auto search_string = file_paths_string; + std::string input_name = ""; + std::vector file_paths; + + // parse strings like :file1,file2,file3 and get name from them + size_t semicolon_pos = search_string.find_first_of(":"); + size_t quote_pos = search_string.find_first_of("\""); + if (semicolon_pos != std::string::npos && quote_pos != std::string::npos && semicolon_pos > quote_pos) { + // if : is found after opening " symbol - this means that " belongs to pathname + semicolon_pos = std::string::npos; + } + if (search_string.length() > 2 && semicolon_pos == 1 && search_string[2] == '\\') { + // Special case like C:\ denotes drive name, not an input name + semicolon_pos = std::string::npos; + } + + if (semicolon_pos != std::string::npos) { + input_name = search_string.substr(0, semicolon_pos); + search_string = search_string.substr(semicolon_pos + 1); + } + + // parse file1,file2,file3 and get vector of paths + size_t coma_pos = 0; + do { + coma_pos = search_string.find_first_of(','); + file_paths.push_back(search_string.substr(0, coma_pos)); + if (coma_pos == std::string::npos) { + search_string = ""; + break; + } + search_string = search_string.substr(coma_pos + 1); + } while (coma_pos != std::string::npos); + + if (!search_string.empty()) + throw std::logic_error("Can't parse file paths for input " + input_name + + " in input parameter string: " + file_paths_string); + + return {input_name, file_paths}; +} + +std::map> parseInputArguments(const std::vector& args) { + std::map> mapped_files = {}; + auto args_it = begin(args); + const auto is_image_arg = [](const std::string& s) { + return s == "-i"; + }; + const auto is_arg = [](const std::string& s) { + return s.front() == '-'; + }; + while (args_it != args.end()) { + const auto files_start = std::find_if(args_it, end(args), is_image_arg); + if (files_start == end(args)) { + break; + } + const auto files_begin = std::next(files_start); + const auto files_end = std::find_if(files_begin, end(args), is_arg); + for (auto f = files_begin; f != files_end; ++f) { + auto files = parseInputFiles(*f); + if (mapped_files.find(files.first) == mapped_files.end()) { + mapped_files[files.first] = {}; + } + + for (auto& file : files.second) { + readInputFilesArguments(mapped_files[files.first], file); + } + } + args_it = files_end; + } + size_t max_files = 20; + for (auto& files : mapped_files) { + if (files.second.size() <= max_files) { + slog::info << "For input " << files.first << " " << files.second.size() << " files were added. " + << slog::endl; + } else { + slog::info << "For input " << files.first << " " << files.second.size() << " files were added. " + << " The number of files will be limited to " << max_files << "." << slog::endl; + files.second.resize(20); + } + } + + return mapped_files; +} + #ifdef USE_OPENCV void dump_config(const std::string& filename, const std::map>& config) { auto plugin_to_opencv_format = [](const std::string& str) -> std::string { @@ -272,4 +428,4 @@ void load_config(const std::string& filename, std::map +#include #include +#include #include #include +#include "ngraph/partial_shape.hpp" + +typedef std::chrono::high_resolution_clock Time; +typedef std::chrono::nanoseconds ns; + +inline uint64_t getDurationInMilliseconds(uint32_t duration) { + return duration * 1000LL; +} + +inline uint64_t getDurationInNanoseconds(uint32_t duration) { + return duration * 1000000000LL; +} + +inline double get_duration_ms_till_now(Time::time_point& startTime) { + return std::chrono::duration_cast(Time::now() - startTime).count() * 0.000001; +}; + +inline std::string double_to_string(const double number) { + std::stringstream ss; + ss << std::fixed << std::setprecision(2) << number; + return ss.str(); +}; + namespace benchmark_app { struct InputInfo { InferenceEngine::Precision precision; - InferenceEngine::SizeVector shape; + ngraph::PartialShape partialShape; + InferenceEngine::SizeVector dataShape; std::string layout; + InferenceEngine::Layout originalLayout; std::vector scale; std::vector mean; bool isImage() const; @@ -25,43 +53,56 @@ struct InputInfo { size_t depth() const; }; using InputsInfo = std::map; +using PartialShapes = std::map; } // namespace benchmark_app std::vector parseDevices(const std::string& device_string); uint32_t deviceDefaultDeviceDurationInSeconds(const std::string& device); std::map parseNStreamsValuePerDevice(const std::vector& devices, const std::string& values_string); + +InferenceEngine::Layout getLayoutFromString(const std::string& string_layout); +std::string getShapeString(const InferenceEngine::SizeVector& shape); +std::string getShapesString(const benchmark_app::PartialShapes& shapes); std::string getShapesString(const InferenceEngine::ICNNNetwork::InputShapes& shapes); size_t getBatchSize(const benchmark_app::InputsInfo& inputs_info); std::vector split(const std::string& s, char delim); + std::map> parseScaleOrMean(const std::string& scale_mean, const benchmark_app::InputsInfo& inputs_info); +std::vector parsePartialShape(const std::string& partial_shape); +InferenceEngine::SizeVector parseTensorShape(const std::string& data_shape); +std::pair> parseInputFiles(const std::string& file_paths_string); +std::map> parseInputArguments(const std::vector& args); template -std::map parseInputParameters(const std::string parameter_string, - const std::map& input_info) { - // Parse parameter string like "input0[value0],input1[value1]" or "[value]" (applied to all - // inputs) - std::map return_value; +std::map> parseInputParameters(const std::string parameter_string, + const std::map& input_info) { + // Parse parameter string like "[value0]", "[value0][value1]" or "input0[value0][value1],input1[value2][value3]" + // (applied to all inputs) + std::map> return_value; std::string search_string = parameter_string; auto start_pos = search_string.find_first_of('['); + auto input_name = search_string.substr(0, start_pos); while (start_pos != std::string::npos) { auto end_pos = search_string.find_first_of(']'); if (end_pos == std::string::npos) break; - auto input_name = search_string.substr(0, start_pos); + if (start_pos) + input_name = search_string.substr(0, start_pos); auto input_value = search_string.substr(start_pos + 1, end_pos - start_pos - 1); if (!input_name.empty()) { - return_value[input_name] = input_value; + return_value[input_name].push_back(input_value); } else { for (auto& item : input_info) { - return_value[item.first] = input_value; + return_value[item.first].push_back(input_value); } } search_string = search_string.substr(end_pos + 1); - if (search_string.empty() || search_string.front() != ',') + if (search_string.empty() || (search_string.front() != ',' && search_string.front() != '[')) break; - search_string = search_string.substr(1); + if (search_string.front() == ',') + search_string = search_string.substr(1); start_pos = search_string.find_first_of('['); } if (!search_string.empty()) @@ -70,87 +111,156 @@ std::map parseInputParameters(const std::string parame } template -benchmark_app::InputsInfo getInputsInfo(const std::string& shape_string, - const std::string& layout_string, - const size_t batch_size, - const std::string& scale_string, - const std::string& mean_string, - const std::map& input_info, - bool& reshape_required) { - std::map shape_map = parseInputParameters(shape_string, input_info); - std::map layout_map = parseInputParameters(layout_string, input_info); +std::vector getInputsInfo(const std::string& shape_string, + const std::string& layout_string, + const size_t batch_size, + const std::string& data_shapes_string, + const std::string& scale_string, + const std::string& mean_string, + const std::map& input_info, + bool& reshape_required) { + std::map> shape_map = parseInputParameters(shape_string, input_info); + std::map> data_shapes_map = + parseInputParameters(data_shapes_string, input_info); + std::map> layout_map = parseInputParameters(layout_string, input_info); + + size_t min_size = 1, max_size = 1; + if (!data_shapes_map.empty()) { + min_size = std::min_element(data_shapes_map.begin(), + data_shapes_map.end(), + [](std::pair> a, + std::pair> b) { + return a.second.size() < b.second.size() && a.second.size() != 1; + }) + ->second.size(); + + max_size = std::max_element(data_shapes_map.begin(), + data_shapes_map.end(), + [](std::pair> a, + std::pair> b) { + return a.second.size() < b.second.size(); + }) + ->second.size(); + if (min_size != max_size) { + throw std::logic_error( + "Shapes number for every input should be either 1 or should be equal to shapes number of other inputs"); + } + } reshape_required = false; - benchmark_app::InputsInfo info_map; - for (auto& item : input_info) { - benchmark_app::InputInfo info; - auto name = item.first; - auto descriptor = item.second->getTensorDesc(); - // Precision - info.precision = descriptor.getPrecision(); - // Shape - if (shape_map.count(name)) { - std::vector parsed_shape; - for (auto& dim : split(shape_map.at(name), ',')) { - parsed_shape.push_back(std::stoi(dim)); - } - info.shape = parsed_shape; - reshape_required = true; - } else { - info.shape = descriptor.getDims(); - } - // Layout - if (layout_map.count(name)) { - info.layout = layout_map.at(name); - std::transform(info.layout.begin(), info.layout.end(), info.layout.begin(), ::toupper); - } else { - std::stringstream ss; - ss << descriptor.getLayout(); - info.layout = ss.str(); - } - // Update shape with batch if needed - if (batch_size != 0) { - std::size_t batch_index = info.layout.find("N"); - if ((batch_index != std::string::npos) && (info.shape.at(batch_index) != batch_size)) { - info.shape[batch_index] = batch_size; + + std::vector info_maps; + + for (size_t i = 0; i < min_size; ++i) { + benchmark_app::InputsInfo info_map; + for (auto& item : input_info) { + benchmark_app::InputInfo info; + auto name = item.first; + auto descriptor = item.second->getTensorDesc(); + // Precision + info.precision = descriptor.getPrecision(); + // Partial Shape + if (shape_map.count(name)) { + std::vector parsed_shape; + if (shape_map.at(name).size() > 1) { + throw std::logic_error( + "shape command line parameter doesn't support multiple shapes for one input."); + } + info.partialShape = parsePartialShape(shape_map.at(name)[0]); reshape_required = true; + } else { + info.partialShape = item.second->getPartialShape(); + } + + if (info.partialShape.is_dynamic() && info.isImage()) { + throw std::logic_error( + "benchmark_app supports only binary and random data as input for dynamic models at this moment."); + } + + // Tensor Shape + if (info.partialShape.is_dynamic() && data_shapes_map.count(name)) { + info.dataShape = parseTensorShape(data_shapes_map.at(name)[i % data_shapes_map.at(name).size()]); + } else if (info.partialShape.is_static()) { + info.dataShape = info.partialShape.get_shape(); + if (data_shapes_map.find(name) != data_shapes_map.end()) { + throw std::logic_error( + "Network's input \"" + name + + "\" is static. Use -shape argument for static inputs instead of -data_shape."); + } + } else if (!data_shapes_map.empty()) { + throw std::logic_error("Can't find network input name \"" + name + "\" in \"-data_shape " + + data_shapes_string + "\" command line parameter"); + } else { + throw std::logic_error( + "data_shape command line parameter should be set in case of network with dynamic shapes."); + } + + // Layout + info.originalLayout = descriptor.getLayout(); + if (layout_map.count(name)) { + if (layout_map.at(name).size() > 1) { + throw std::logic_error( + "layout command line parameter doesn't support multiple layouts for one input."); + } + info.layout = layout_map.at(name)[0]; + std::transform(info.layout.begin(), info.layout.end(), info.layout.begin(), ::toupper); + } else { + std::stringstream ss; + ss << descriptor.getLayout(); + info.layout = ss.str(); + } + // Update shape with batch if needed (only in static shape case) + // Update blob shape only not affecting network shape to trigger dynamic batch size case + if (batch_size != 0) { + std::size_t batch_index = info.layout.find("N"); + if ((batch_index != std::string::npos) && (info.dataShape.at(batch_index) != batch_size)) { + if (info.partialShape.is_static()) { + info.partialShape[batch_index] = batch_size; + } + info.dataShape[batch_index] = batch_size; + reshape_required = true; + } + } + info_map[name] = info; + } + + // Update scale and mean + std::map> scale_map = parseScaleOrMean(scale_string, info_map); + std::map> mean_map = parseScaleOrMean(mean_string, info_map); + + for (auto& item : info_map) { + if (item.second.isImage()) { + item.second.scale.assign({1, 1, 1}); + item.second.mean.assign({0, 0, 0}); + + if (scale_map.count(item.first)) { + item.second.scale = scale_map.at(item.first); + } + if (mean_map.count(item.first)) { + item.second.mean = mean_map.at(item.first); + } } } - info_map[name] = info; + + info_maps.push_back(info_map); } - // Update scale and mean - std::map> scale_map = parseScaleOrMean(scale_string, info_map); - std::map> mean_map = parseScaleOrMean(mean_string, info_map); - - for (auto& item : info_map) { - if (item.second.isImage()) { - item.second.scale.assign({1, 1, 1}); - item.second.mean.assign({0, 0, 0}); - - if (scale_map.count(item.first)) { - item.second.scale = scale_map.at(item.first); - } - if (mean_map.count(item.first)) { - item.second.mean = mean_map.at(item.first); - } - } - } - - return info_map; + return info_maps; } template -benchmark_app::InputsInfo getInputsInfo(const std::string& shape_string, - const std::string& layout_string, - const size_t batch_size, - const std::string& scale_string, - const std::string& mean_string, - const std::map& input_info) { +std::vector getInputsInfo(const std::string& shape_string, + const std::string& layout_string, + const size_t batch_size, + const std::string& data_shapes_string, + const std::string& scale_string, + const std::string& mean_string, + const std::map& input_info) { bool reshape_required = false; return getInputsInfo(shape_string, layout_string, batch_size, + data_shapes_string, scale_string, mean_string, input_info, @@ -160,4 +270,4 @@ benchmark_app::InputsInfo getInputsInfo(const std::string& shape_string, #ifdef USE_OPENCV void dump_config(const std::string& filename, const std::map>& config); void load_config(const std::string& filename, std::map>& config); -#endif \ No newline at end of file +#endif diff --git a/samples/cpp/common/format_reader/CMakeLists.txt b/samples/cpp/common/format_reader/CMakeLists.txt index d97d55d327a..3ce377270a9 100644 --- a/samples/cpp/common/format_reader/CMakeLists.txt +++ b/samples/cpp/common/format_reader/CMakeLists.txt @@ -13,7 +13,7 @@ source_group("src" FILES ${LIBRARY_SRC}) source_group("include" FILES ${LIBRARY_HEADERS}) # Create library file from sources. -add_library(${TARGET_NAME} SHARED EXCLUDE_FROM_ALL ${MAIN_SRC} ${LIBRARY_HEADERS}) +add_library(${TARGET_NAME} SHARED ${MAIN_SRC} ${LIBRARY_HEADERS}) # Find OpenCV components if exist find_package(OpenCV COMPONENTS core imgproc imgcodecs QUIET) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 942dfd190a7..0b75eaf3398 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,9 +2,6 @@ # SPDX-License-Identifier: Apache-2.0 # -if(ENABLE_LTO) - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) -endif() add_definitions(-DPROJECT_ROOT_DIR="${CMAKE_CURRENT_SOURCE_DIR}") add_custom_target(ov_runtime_libraries) @@ -27,6 +24,10 @@ add_subdirectory(plugins) add_subdirectory(inference) add_subdirectory(common) +if(ENABLE_TESTS) + add_subdirectory(tests_deprecated) + add_subdirectory(tests) +endif() if(ENABLE_OV_IR_FRONTEND) if(BUILD_SHARED_LIBS) diff --git a/src/bindings/python/src/compatibility/pyngraph/passes/manager.cpp b/src/bindings/python/src/compatibility/pyngraph/passes/frontend_manager.cpp similarity index 99% rename from src/bindings/python/src/compatibility/pyngraph/passes/manager.cpp rename to src/bindings/python/src/compatibility/pyngraph/passes/frontend_manager.cpp index dd3ae2b6ad6..a85c4be5645 100644 --- a/src/bindings/python/src/compatibility/pyngraph/passes/manager.cpp +++ b/src/bindings/python/src/compatibility/pyngraph/passes/frontend_manager.cpp @@ -2,12 +2,11 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "ngraph/pass/manager.hpp" - #include #include #include "ngraph/pass/constant_folding.hpp" +#include "ngraph/pass/manager.hpp" #include "ngraph/pass/pass.hpp" #include "ngraph/pass/validate.hpp" #include "pyngraph/passes/manager.hpp" diff --git a/src/bindings/python/src/pyopenvino/core/common.cpp b/src/bindings/python/src/pyopenvino/core/common.cpp index 987456b34ee..795b385a07c 100644 --- a/src/bindings/python/src/pyopenvino/core/common.cpp +++ b/src/bindings/python/src/pyopenvino/core/common.cpp @@ -321,68 +321,64 @@ py::dict outputs_to_dict(const std::vector>& outputs, ov::runtime::Tensor t{request.get_tensor(out)}; switch (t.get_element_type()) { case ov::element::Type_t::i8: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::i16: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::i32: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::i64: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::u8: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::u16: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); break; } case ov::element::Type_t::u32: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::u64: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); break; } case ov::element::Type_t::bf16: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr.view("int16"); + res[py::cast(out)] = py::array(py::dtype("float16"), t.get_shape(), t.data()); break; } case ov::element::Type_t::f16: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr.view("int16"); + res[py::cast(out)] = py::array(py::dtype("float16"), t.get_shape(), t.data()); break; } case ov::element::Type_t::f32: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::f64: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } case ov::element::Type_t::boolean: { - py::array arr(t.get_shape(), t.data()); - res[py::cast(out)] = arr; + res[py::cast(out)] = py::array_t(t.get_shape(), t.data()); + ; break; } default: { diff --git a/src/bindings/python/src/pyopenvino/core/infer_request.cpp b/src/bindings/python/src/pyopenvino/core/infer_request.cpp index 14dc2befeef..6bb7186c586 100644 --- a/src/bindings/python/src/pyopenvino/core/infer_request.cpp +++ b/src/bindings/python/src/pyopenvino/core/infer_request.cpp @@ -65,7 +65,6 @@ void regclass_InferRequest(py::module m) { self._start_time = Time::now(); self._request.infer(); self._end_time = Time::now(); - return Common::outputs_to_dict(self._outputs, self._request); }, py::arg("inputs")); diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp index 096bc3e5bf6..5adeed0ce1c 100644 --- a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp @@ -7,9 +7,9 @@ #include #include -#include "common/frontend_exceptions.hpp" -#include "common/telemetry_extension.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/telemetry_extension.hpp" #include "pyopenvino/graph/function.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp b/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp index 45ba73c7fbf..db6c9c55c74 100644 --- a/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/inputmodel.cpp @@ -6,8 +6,8 @@ #include #include -#include "common/frontend_exceptions.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend_manager.cpp b/src/bindings/python/src/pyopenvino/frontend/manager.cpp similarity index 98% rename from src/bindings/python/src/pyopenvino/frontend/frontend_manager.cpp rename to src/bindings/python/src/pyopenvino/frontend/manager.cpp index 2f0a40903e3..38c1bf64ef6 100644 --- a/src/bindings/python/src/pyopenvino/frontend/frontend_manager.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/manager.cpp @@ -2,14 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "frontend_manager.hpp" +#include "openvino/frontend/manager.hpp" #include #include #include -#include "common/frontend_exceptions.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend_manager.hpp b/src/bindings/python/src/pyopenvino/frontend/manager.hpp similarity index 100% rename from src/bindings/python/src/pyopenvino/frontend/frontend_manager.hpp rename to src/bindings/python/src/pyopenvino/frontend/manager.hpp diff --git a/src/bindings/python/src/pyopenvino/frontend/place.cpp b/src/bindings/python/src/pyopenvino/frontend/place.cpp index f0f00972c0b..69744140a2a 100644 --- a/src/bindings/python/src/pyopenvino/frontend/place.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/place.cpp @@ -6,9 +6,8 @@ #include #include -#include "common/frontend_exceptions.hpp" -#include "frontend_manager.hpp" -#include "manager.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" #include "pyopenvino/graph/function.hpp" namespace py = pybind11; diff --git a/src/bindings/python/src/pyopenvino/pyopenvino.cpp b/src/bindings/python/src/pyopenvino/pyopenvino.cpp index e86d64a88f9..46bc6e1eb8f 100644 --- a/src/bindings/python/src/pyopenvino/pyopenvino.cpp +++ b/src/bindings/python/src/pyopenvino/pyopenvino.cpp @@ -32,8 +32,8 @@ #include "pyopenvino/core/variable_state.hpp" #include "pyopenvino/core/version.hpp" #include "pyopenvino/frontend/frontend.hpp" -#include "pyopenvino/frontend/frontend_manager.hpp" #include "pyopenvino/frontend/inputmodel.hpp" +#include "pyopenvino/frontend/manager.hpp" #include "pyopenvino/frontend/place.hpp" #include "pyopenvino/graph/any.hpp" #include "pyopenvino/graph/descriptors/tensor.hpp" diff --git a/src/bindings/python/tests/__init__.py b/src/bindings/python/tests/__init__.py index f8522ff5f7d..08eb6fdd7b5 100644 --- a/src/bindings/python/tests/__init__.py +++ b/src/bindings/python/tests/__init__.py @@ -51,12 +51,6 @@ xfail_issue_35923 = xfail_test(reason="RuntimeError: PReLU without weights is no xfail_issue_35927 = xfail_test(reason="RuntimeError: B has zero dimension that is not allowable") xfail_issue_36486 = xfail_test(reason="RuntimeError: HardSigmoid operation should be converted " "to HardSigmoid_IE") -xfail_issue_38084 = xfail_test(reason="RuntimeError: AssertionFailed: layer->get_output_partial_shape(i)." - "is_static() nGraph operation with name: cannot be " - "converted to layer with name: because output " - "with index 0 contains dynamic shapes: {}. Try to use " - "CNNNetwork::reshape() method in order to specialize shapes " - "before the conversion.") xfail_issue_38091 = xfail_test(reason="AssertionError: Mismatched elements") xfail_issue_38699 = xfail_test(reason="RuntimeError: nGraph does not support the following ONNX operations: " "ai.onnx.preview.training.Gradient") diff --git a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp index 6491ac6a43e..fd48b138bff 100644 --- a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp +++ b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.cpp @@ -4,8 +4,8 @@ #include "mock_py_frontend.hpp" -#include "common/frontend_defs.hpp" -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" using namespace ngraph; using namespace ov::frontend; diff --git a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp index 32f9794bec6..3bc8d8f423a 100644 --- a/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp +++ b/src/bindings/python/tests/mock/mock_py_ov_frontend/mock_py_frontend.hpp @@ -4,9 +4,9 @@ #pragma once -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" // Defined if we are building the plugin DLL (instead of using it) #ifdef mock_py_ov_frontend_EXPORTS diff --git a/src/bindings/python/tests/test_frontend/test_frontend_onnx.py b/src/bindings/python/tests/test_frontend/test_frontend_onnx.py index 7c36999c9cd..f691e55bdb6 100644 --- a/src/bindings/python/tests/test_frontend/test_frontend_onnx.py +++ b/src/bindings/python/tests/test_frontend/test_frontend_onnx.py @@ -26,6 +26,32 @@ def create_onnx_model(): return make_model(graph, producer_name="ngraph ONNX Importer") +def create_onnx_model_with_subgraphs(): + A = onnx.helper.make_tensor_value_info("A", onnx.TensorProto.FLOAT, [3]) + B = onnx.helper.make_tensor_value_info("B", onnx.TensorProto.FLOAT, [3]) + add_out = onnx.helper.make_tensor_value_info("add_out", onnx.TensorProto.FLOAT, [3]) + sub_out = onnx.helper.make_tensor_value_info("sub_out", onnx.TensorProto.FLOAT, [3]) + + add = onnx.helper.make_node("Add", inputs=["A", "B"], outputs=["add_out"]) + sub = onnx.helper.make_node("Sub", inputs=["A", "B"], outputs=["sub_out"]) + + then_body = make_graph([add], "then_body", [], [add_out]) + else_body = make_graph([sub], "else_body", [], [sub_out]) + + if_node = onnx.helper.make_node( + "If", + inputs=["cond"], + outputs=["res"], + then_branch=then_body, + else_branch=else_body + ) + cond = onnx.helper.make_tensor_value_info("cond", onnx.TensorProto.BOOL, []) + res = onnx.helper.make_tensor_value_info("res", onnx.TensorProto.FLOAT, [3]) + + graph = make_graph([if_node], "graph", [cond, A, B], [res]) + return make_model(graph, producer_name="ngraph ONNX Importer") + + def run_function(function, *inputs, expected): runtime = get_runtime() computation = runtime.computation(function) @@ -37,15 +63,18 @@ def run_function(function, *inputs, expected): fem = FrontEndManager() onnx_model_filename = "model.onnx" +onnx_model_with_subgraphs_filename = "model_subgraphs.onnx" ONNX_FRONTEND_NAME = "onnx" def setup_module(): onnx.save_model(create_onnx_model(), onnx_model_filename) + onnx.save_model(create_onnx_model_with_subgraphs(), onnx_model_with_subgraphs_filename) def teardown_module(): os.remove(onnx_model_filename) + os.remove(onnx_model_with_subgraphs_filename) def skip_if_onnx_frontend_is_disabled(): @@ -72,17 +101,29 @@ def test_convert(): run_function(function, a, b, expected=[expected]) -def test_decode_and_convert(): +@pytest.mark.parametrize("model_filename, inputs, expected", [ + [onnx_model_filename, + [np.array([[1, 2], [3, 4]], dtype=np.float32), + np.array([[2, 3], [4, 5]], dtype=np.float32)], + np.array([[1.5, 5], [10.5, 18]], dtype=np.float32)], + [onnx_model_with_subgraphs_filename, + [np.array(False, dtype=bool), + np.array([1, 2, 3], dtype=np.float32), + np.array([2, 3, 5], dtype=np.float32)], + np.array([-1, -1, -2], dtype=np.float32)], +]) +def test_decode_and_convert(model_filename, inputs, expected): skip_if_onnx_frontend_is_disabled() fe = fem.load_by_framework(framework=ONNX_FRONTEND_NAME) assert fe - model = fe.load(onnx_model_filename) + model = fe.load(model_filename) assert model decoded_function = fe.decode(model) assert decoded_function + for op in decoded_function.get_ordered_ops(): assert op.get_type_name() in ["Parameter", "Constant", "ONNXFrameworkNode", "ONNXSubgraphFrameworkNode", "Result"] @@ -92,10 +133,7 @@ def test_decode_and_convert(): for op in decoded_function.get_ordered_ops(): assert op.get_type_name() not in ["ONNXFrameworkNode", "ONNXSubgraphFrameworkNode"] - a = np.array([[1, 2], [3, 4]], dtype=np.float32) - b = np.array([[2, 3], [4, 5]], dtype=np.float32) - expected = np.array([[1.5, 5], [10.5, 18]], dtype=np.float32) - run_function(decoded_function, a, b, expected=[expected]) + run_function(decoded_function, *inputs, expected=[expected]) def test_load_by_model(): diff --git a/src/bindings/python/tests/test_inference_engine/test_core.py b/src/bindings/python/tests/test_inference_engine/test_core.py index 93058708005..3806cd2348b 100644 --- a/src/bindings/python/tests/test_inference_engine/test_core.py +++ b/src/bindings/python/tests/test_inference_engine/test_core.py @@ -380,3 +380,18 @@ def test_read_model_from_buffer_no_weights(device): core = Core() func = core.read_model(model=model) assert isinstance(func, Model) + + +def test_infer_new_request_return_type(device): + ie = Core() + func = ie.read_model(model=test_net_xml, weights=test_net_bin) + img = read_image() + exec_net = ie.compile_model(func, device) + res = exec_net.infer_new_request({"data": img}) + arr = res[list(res)[0]][0] + + assert isinstance(arr, np.ndarray) + assert arr.itemsize == 4 + assert arr.shape == (10,) + assert arr.dtype == "float32" + assert arr.nbytes == 40 diff --git a/src/bindings/python/tests/test_inference_engine/test_infer_request.py b/src/bindings/python/tests/test_inference_engine/test_infer_request.py index 224bfe077e0..8d9d3c0b50a 100644 --- a/src/bindings/python/tests/test_inference_engine/test_infer_request.py +++ b/src/bindings/python/tests/test_inference_engine/test_infer_request.py @@ -8,7 +8,8 @@ import datetime import time import openvino.runtime.opset8 as ops -from openvino.runtime import Core, AsyncInferQueue, Tensor, ProfilingInfo, Model +from openvino.runtime import Core, AsyncInferQueue, Tensor, ProfilingInfo, Model, Type +from openvino.preprocess import PrePostProcessor from ..conftest import model_path, read_image @@ -351,3 +352,84 @@ def test_results_async_infer(device): for i in range(num_request): np.allclose(list(outputs.values()), list(infer_queue[i].results.values())) + + +@pytest.mark.skipif(os.environ.get("TEST_DEVICE") not in ["GPU, FPGA", "MYRIAD"], + reason="Device independent test") +def test_infer_float16(device): + model = bytes(b""" + + + + + + 2 + 2 + 2 + + + + + + + + 2 + 2 + 2 + + + + + + + 2 + 2 + 2 + + + 2 + 2 + 2 + + + + + 2 + 2 + 2 + + + + + + + 2 + 2 + 2 + + + + + + + + + +""") + core = Core() + func = core.read_model(model=model) + p = PrePostProcessor(func) + p.input(0).tensor().set_element_type(Type.f16) + p.input(0).preprocess().convert_element_type(Type.f16) + p.input(1).tensor().set_element_type(Type.f16) + p.input(1).preprocess().convert_element_type(Type.f16) + p.output(0).tensor().set_element_type(Type.f16) + p.output(0).postprocess().convert_element_type(Type.f16) + + func = p.build() + exec_net = core.compile_model(func, device) + input_data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]).astype(np.float16) + request = exec_net.create_infer_request() + outputs = request.infer({0: input_data, 1: input_data}) + assert np.allclose(list(outputs.values()), list(request.results.values())) + assert np.allclose(list(outputs.values()), input_data + input_data) diff --git a/src/bindings/python/tests/test_onnx/test_backend.py b/src/bindings/python/tests/test_onnx/test_backend.py index a3f88676852..1f7ab1d76c4 100644 --- a/src/bindings/python/tests/test_onnx/test_backend.py +++ b/src/bindings/python/tests/test_onnx/test_backend.py @@ -101,16 +101,9 @@ tests_expected_to_fail = [ ( xfail_issue_FLOAT_LIKE, "OnnxBackendNodeModelTest.test_cast_BFLOAT16_to_FLOAT_cpu", - "OnnxBackendNodeModelTest.test_cast_FLOAT16_to_DOUBLE_cpu", - "OnnxBackendNodeModelTest.test_cast_FLOAT16_to_FLOAT_cpu", "OnnxBackendNodeModelTest.test_cast_FLOAT_to_BFLOAT16_cpu", "OnnxBackendNodeModelTest.test_castlike_BFLOAT16_to_FLOAT_expanded_cpu", - "OnnxBackendNodeModelTest.test_castlike_FLOAT16_to_DOUBLE_expanded_cpu", - "OnnxBackendNodeModelTest.test_castlike_FLOAT16_to_FLOAT_expanded_cpu", "OnnxBackendNodeModelTest.test_castlike_FLOAT_to_BFLOAT16_expanded_cpu", - "OnnxBackendNodeModelTest.test_max_float16_cpu", - "OnnxBackendNodeModelTest.test_min_float16_cpu", - "OnnxBackendNodeModelTest.test_mod_mixed_sign_float16_cpu", ), ( xfail_issue_49207, @@ -209,7 +202,6 @@ tests_expected_to_fail = [ ( xfail_issue_38706, "OnnxBackendNodeModelTest.test_split_zero_size_splits_cpu", - "OnnxBackendNodeModelTest.test_slice_start_out_of_bounds_cpu", ), ( xfail_issue_33538, diff --git a/src/bindings/python/tests/test_onnx/test_zoo_models.py b/src/bindings/python/tests/test_onnx/test_zoo_models.py index ee16fa4724a..9530e73be2e 100644 --- a/src/bindings/python/tests/test_onnx/test_zoo_models.py +++ b/src/bindings/python/tests/test_onnx/test_zoo_models.py @@ -15,7 +15,6 @@ from tests import ( xfail_issue_38701, xfail_issue_45457, xfail_issue_37957, - xfail_issue_38084, xfail_issue_39669, xfail_issue_37973, xfail_issue_47430, @@ -171,17 +170,9 @@ if len(zoo_models) > 0: test_cases = backend_test.test_cases["OnnxBackendModelExecutionTest"] if tests.MODEL_ZOO_XFAIL: execution_xfail_list = [ - # New Python API - fp16 blob - (xfail_issue_67415, "test_MSFT_opset7_fp16_inception_v1_onnxzoo_lotus_inception_v1_cpu"), - (xfail_issue_67415, "test_MSFT_opset7_fp16_shufflenet_onnxzoo_lotus_shufflenet_cpu"), - (xfail_issue_67415, "test_MSFT_opset8_fp16_inception_v1_onnxzoo_lotus_inception_v1_cpu"), - (xfail_issue_67415, "test_MSFT_opset8_fp16_shufflenet_onnxzoo_lotus_shufflenet_cpu"), - # ONNX Model Zoo (xfail_issue_39669, "test_onnx_model_zoo_text_machine_comprehension_t5_model_t5_encoder_12_t5_encoder_cpu"), (xfail_issue_39669, "test_onnx_model_zoo_text_machine_comprehension_t5_model_t5_decoder_with_lm_head_12_t5_decoder_with_lm_head_cpu"), - (xfail_issue_38084, "test_onnx_model_zoo_vision_object_detection_segmentation_mask_rcnn_model_MaskRCNN_10_mask_rcnn_R_50_FPN_1x_cpu"), - (xfail_issue_38084, "test_onnx_model_zoo_vision_object_detection_segmentation_faster_rcnn_model_FasterRCNN_10_faster_rcnn_R_50_FPN_1x_cpu"), (xfail_issue_47430, "test_onnx_model_zoo_vision_object_detection_segmentation_fcn_model_fcn_resnet50_11_fcn_resnet50_11_model_cpu"), (xfail_issue_47430, "test_onnx_model_zoo_vision_object_detection_segmentation_fcn_model_fcn_resnet101_11_fcn_resnet101_11_model_cpu"), (xfail_issue_48145, "test_onnx_model_zoo_text_machine_comprehension_bert_squad_model_bertsquad_8_download_sample_8_bertsquad8_cpu"), @@ -199,9 +190,6 @@ if len(zoo_models) > 0: (xfail_issue_58676, "test_MSFT_opset7_fp16_tiny_yolov2_onnxzoo_winmlperf_tiny_yolov2_cpu"), (xfail_issue_58676, "test_MSFT_opset8_fp16_tiny_yolov2_onnxzoo_winmlperf_tiny_yolov2_cpu"), - (xfail_issue_38084, "test_MSFT_opset10_mask_rcnn_mask_rcnn_R_50_FPN_1x_cpu"), - (xfail_issue_38084, "test_MSFT_opset10_faster_rcnn_faster_rcnn_R_50_FPN_1x_cpu"), - (xfail_issue_39669, "test_MSFT_opset9_cgan_cgan_cpu"), (xfail_issue_47495, "test_MSFT_opset10_BERT_Squad_bertsquad10_cpu"), (xfail_issue_45457, "test_MSFT_opset10_mlperf_ssd_resnet34_1200_ssd_resnet34_mAP_20.2_cpu"), diff --git a/src/bindings/python/tests/test_utils/test_utils.py b/src/bindings/python/tests/test_utils/test_utils.py index b312689aaa7..d8364635813 100644 --- a/src/bindings/python/tests/test_utils/test_utils.py +++ b/src/bindings/python/tests/test_utils/test_utils.py @@ -1,9 +1,9 @@ # Copyright (C) 2021 Intel Corporation # SPDX-License-Identifier: Apache-2.0 -from openvino.runtime import Function -from openvino.runtime.impl import Shape, Type -from openvino.runtime.impl.op import Parameter +from openvino.runtime import Model +from openvino.runtime import Shape, Type +from openvino.runtime.op import Parameter import openvino.runtime.opset8 as ops @@ -11,7 +11,7 @@ def get_test_function(): element_type = Type.f32 param = Parameter(element_type, Shape([1, 3, 22, 22])) relu = ops.relu(param) - func = Function([relu], [param], "test") + func = Model([relu], [param], "test") assert func is not None return func diff --git a/src/bindings/python/tests_compatibility/test_onnx/test_backend.py b/src/bindings/python/tests_compatibility/test_onnx/test_backend.py index 3da0078c75b..58d36643606 100644 --- a/src/bindings/python/tests_compatibility/test_onnx/test_backend.py +++ b/src/bindings/python/tests_compatibility/test_onnx/test_backend.py @@ -194,7 +194,6 @@ tests_expected_to_fail = [ ( xfail_issue_38706, "OnnxBackendNodeModelTest.test_split_zero_size_splits_cpu", - "OnnxBackendNodeModelTest.test_slice_start_out_of_bounds_cpu", ), ( xfail_issue_33538, diff --git a/src/bindings/python/tests_compatibility/test_onnx/test_zoo_models.py b/src/bindings/python/tests_compatibility/test_onnx/test_zoo_models.py index 6f7f90b2970..f24c16e5a28 100644 --- a/src/bindings/python/tests_compatibility/test_onnx/test_zoo_models.py +++ b/src/bindings/python/tests_compatibility/test_onnx/test_zoo_models.py @@ -162,7 +162,6 @@ if len(zoo_models) > 0: # ONNX Model Zoo (xfail_issue_39669, "test_onnx_model_zoo_text_machine_comprehension_t5_model_t5_encoder_12_t5_encoder_cpu"), (xfail_issue_38084, "test_onnx_model_zoo_vision_object_detection_segmentation_mask_rcnn_model_MaskRCNN_10_mask_rcnn_R_50_FPN_1x_cpu"), - (xfail_issue_38084, "test_onnx_model_zoo_vision_object_detection_segmentation_faster_rcnn_model_FasterRCNN_10_faster_rcnn_R_50_FPN_1x_cpu"), (xfail_issue_47430, "test_onnx_model_zoo_vision_object_detection_segmentation_fcn_model_fcn_resnet50_11_fcn_resnet50_11_model_cpu"), (xfail_issue_47430, "test_onnx_model_zoo_vision_object_detection_segmentation_fcn_model_fcn_resnet101_11_fcn_resnet101_11_model_cpu"), (xfail_issue_48145, "test_onnx_model_zoo_text_machine_comprehension_bert_squad_model_bertsquad_8_download_sample_8_bertsquad8_cpu"), @@ -181,7 +180,6 @@ if len(zoo_models) > 0: (xfail_issue_58676, "test_MSFT_opset8_fp16_tiny_yolov2_onnxzoo_winmlperf_tiny_yolov2_cpu"), (xfail_issue_38084, "test_MSFT_opset10_mask_rcnn_mask_rcnn_R_50_FPN_1x_cpu"), - (xfail_issue_38084, "test_MSFT_opset10_faster_rcnn_faster_rcnn_R_50_FPN_1x_cpu"), (xfail_issue_39669, "test_MSFT_opset9_cgan_cgan_cpu"), (xfail_issue_47495, "test_MSFT_opset10_BERT_Squad_bertsquad10_cpu"), diff --git a/src/common/transformations/include/ngraph_ops/convolution_ie.hpp b/src/common/legacy/include/legacy/ngraph_ops/convolution_ie.hpp similarity index 97% rename from src/common/transformations/include/ngraph_ops/convolution_ie.hpp rename to src/common/legacy/include/legacy/ngraph_ops/convolution_ie.hpp index 06274442a02..44bcc0e0b3d 100644 --- a/src/common/transformations/include/ngraph_ops/convolution_ie.hpp +++ b/src/common/legacy/include/legacy/ngraph_ops/convolution_ie.hpp @@ -8,15 +8,13 @@ #include #include -#include - #include "ngraph/coordinate_diff.hpp" #include "ngraph/op/op.hpp" namespace ngraph { namespace op { -class TRANSFORMATIONS_API ConvolutionIE : public Op { +class ConvolutionIE : public Op { public: OPENVINO_OP("ConvolutionIE", "util"); BWDCMP_RTTI_DECLARATION; diff --git a/src/common/transformations/include/ngraph_ops/deconvolution_ie.hpp b/src/common/legacy/include/legacy/ngraph_ops/deconvolution_ie.hpp similarity index 97% rename from src/common/transformations/include/ngraph_ops/deconvolution_ie.hpp rename to src/common/legacy/include/legacy/ngraph_ops/deconvolution_ie.hpp index 7ecb8df95da..6f0f78fd303 100644 --- a/src/common/transformations/include/ngraph_ops/deconvolution_ie.hpp +++ b/src/common/legacy/include/legacy/ngraph_ops/deconvolution_ie.hpp @@ -8,15 +8,13 @@ #include #include -#include - #include "ngraph/coordinate_diff.hpp" #include "ngraph/op/op.hpp" namespace ngraph { namespace op { -class TRANSFORMATIONS_API DeconvolutionIE : public Op { +class DeconvolutionIE : public Op { public: OPENVINO_OP("DeconvolutionIE", "util"); BWDCMP_RTTI_DECLARATION; diff --git a/src/common/transformations/include/transformations/common_optimizations/conv_bias_fusion.hpp b/src/common/legacy/include/legacy/transformations/convert_opset1_to_legacy/conv_bias_fusion.hpp similarity index 80% rename from src/common/transformations/include/transformations/common_optimizations/conv_bias_fusion.hpp rename to src/common/legacy/include/legacy/transformations/convert_opset1_to_legacy/conv_bias_fusion.hpp index d18f1bc2a6c..14f0e3826a5 100644 --- a/src/common/transformations/include/transformations/common_optimizations/conv_bias_fusion.hpp +++ b/src/common/legacy/include/legacy/transformations/convert_opset1_to_legacy/conv_bias_fusion.hpp @@ -7,8 +7,6 @@ #include #include -#include - #include #include "ngraph/pattern/matcher.hpp" @@ -16,8 +14,8 @@ #include "ngraph/op/reshape.hpp" #include "ngraph/op/add.hpp" -#include "ngraph_ops/convolution_ie.hpp" -#include "ngraph_ops/deconvolution_ie.hpp" +#include "legacy/ngraph_ops/convolution_ie.hpp" +#include "legacy/ngraph_ops/deconvolution_ie.hpp" #include "ngraph/op/group_conv.hpp" #include "ngraph/rt_info.hpp" @@ -26,10 +24,10 @@ namespace ngraph { namespace pass { -class TRANSFORMATIONS_API ConvFusion; -class TRANSFORMATIONS_API ConvAddFusion; -class TRANSFORMATIONS_API ConvMultiplyFusion; -class TRANSFORMATIONS_API DeconvAddFusion; +class ConvFusion; +class ConvAddFusion; +class ConvMultiplyFusion; +class DeconvAddFusion; } // namespace pass } // namespace ngraph diff --git a/src/common/transformations/include/transformations/op_conversions/convert_convolutions.hpp b/src/common/legacy/include/legacy/transformations/convert_opset1_to_legacy/convert_convolutions.hpp similarity index 81% rename from src/common/transformations/include/transformations/op_conversions/convert_convolutions.hpp rename to src/common/legacy/include/legacy/transformations/convert_opset1_to_legacy/convert_convolutions.hpp index 5d4d888ad87..0e04abc5858 100644 --- a/src/common/transformations/include/transformations/op_conversions/convert_convolutions.hpp +++ b/src/common/legacy/include/legacy/transformations/convert_opset1_to_legacy/convert_convolutions.hpp @@ -7,19 +7,19 @@ #include #include -#include +#include #include namespace ngraph { namespace pass { -class TRANSFORMATIONS_API ConvertConvolutions; +class ConvertConvolutions; -class TRANSFORMATIONS_API ConvertConvolution; -class TRANSFORMATIONS_API ConvertGroupConvolution; -class TRANSFORMATIONS_API ConvertDeconvolution; -class TRANSFORMATIONS_API ConvertGroupDeconvolution; +class ConvertConvolution; +class ConvertGroupConvolution; +class ConvertDeconvolution; +class ConvertGroupDeconvolution; } // namespace pass } // namespace ngraph diff --git a/src/common/legacy/src/convert_function_to_cnn_network.cpp b/src/common/legacy/src/convert_function_to_cnn_network.cpp index a93939159f8..87328cea152 100644 --- a/src/common/legacy/src/convert_function_to_cnn_network.cpp +++ b/src/common/legacy/src/convert_function_to_cnn_network.cpp @@ -10,8 +10,8 @@ #include #include -#include "ngraph_ops/convolution_ie.hpp" -#include "ngraph_ops/deconvolution_ie.hpp" +#include "legacy/ngraph_ops/convolution_ie.hpp" +#include "legacy/ngraph_ops/deconvolution_ie.hpp" #include "legacy/ngraph_ops/eltwise.hpp" #include "legacy/ngraph_ops/fully_connected.hpp" #include "legacy/ngraph_ops/gather_ie.hpp" diff --git a/src/common/transformations/src/ngraph_ops/convolution_ie.cpp b/src/common/legacy/src/ngraph_ops/convolution_ie.cpp similarity index 96% rename from src/common/transformations/src/ngraph_ops/convolution_ie.cpp rename to src/common/legacy/src/ngraph_ops/convolution_ie.cpp index 37ff1b6928f..48a6749cc0c 100644 --- a/src/common/transformations/src/ngraph_ops/convolution_ie.cpp +++ b/src/common/legacy/src/ngraph_ops/convolution_ie.cpp @@ -2,8 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "ngraph_ops/convolution_ie.hpp" -#include "itt.hpp" +#include "legacy/ngraph_ops/convolution_ie.hpp" #include #include @@ -100,7 +99,6 @@ op::ConvolutionIE::ConvolutionIE(const Output& data_batch, } void op::ConvolutionIE::validate_and_infer_types() { - INTERNAL_OP_SCOPE(ConvolutionIE_validate_and_infer_types); PartialShape data_batch_shape = get_input_partial_shape(0); PartialShape filters_shape = get_input_partial_shape(1); @@ -147,7 +145,6 @@ void op::ConvolutionIE::validate_and_infer_types() { } shared_ptr op::ConvolutionIE::clone_with_new_inputs(const ngraph::OutputVector & new_args) const { - INTERNAL_OP_SCOPE(ConvolutionIE_clone_with_new_inputs); if (new_args.size() == 2) { return make_shared(new_args.at(0), new_args.at(1), @@ -175,7 +172,6 @@ shared_ptr op::ConvolutionIE::clone_with_new_inputs(const ngraph::OutputVe } bool op::ConvolutionIE::visit_attributes(AttributeVisitor& visitor) { - INTERNAL_OP_SCOPE(ConvolutionIE_visit_attributes); visitor.on_attribute("strides", m_strides); visitor.on_attribute("dilations", m_dilations); visitor.on_attribute("pads_begin", m_pads_begin); diff --git a/src/common/transformations/src/ngraph_ops/deconvolution_ie.cpp b/src/common/legacy/src/ngraph_ops/deconvolution_ie.cpp similarity index 96% rename from src/common/transformations/src/ngraph_ops/deconvolution_ie.cpp rename to src/common/legacy/src/ngraph_ops/deconvolution_ie.cpp index bbd1415e91c..3ec0fc71723 100644 --- a/src/common/transformations/src/ngraph_ops/deconvolution_ie.cpp +++ b/src/common/legacy/src/ngraph_ops/deconvolution_ie.cpp @@ -6,9 +6,8 @@ #include #include #include -#include "itt.hpp" -#include "ngraph_ops/deconvolution_ie.hpp" +#include "legacy/ngraph_ops/deconvolution_ie.hpp" #include "ngraph/util.hpp" #include "ngraph/validation_util.hpp" @@ -70,7 +69,6 @@ op::DeconvolutionIE::DeconvolutionIE(const Output& data, } void op::DeconvolutionIE::validate_and_infer_types() { - INTERNAL_OP_SCOPE(DeconvolutionIE_validate_and_infer_types); // To calculate output shape we use opset1::GroupConvolutionBackPropData // but before we need to reshape weights from I(G*O)YX to GIOYX auto weights = input_value(1); @@ -115,7 +113,6 @@ void op::DeconvolutionIE::validate_and_infer_types() { } shared_ptr op::DeconvolutionIE::clone_with_new_inputs(const ngraph::OutputVector &new_args) const { - INTERNAL_OP_SCOPE(DeconvolutionIE_clone_with_new_inputs); if (new_args.size() == 2) { return make_shared(new_args.at(0), new_args.at(1), @@ -146,7 +143,6 @@ shared_ptr op::DeconvolutionIE::clone_with_new_inputs(const ngraph::Output } bool op::DeconvolutionIE::visit_attributes(AttributeVisitor& visitor) { - INTERNAL_OP_SCOPE(DeconvolutionIE_visit_attributes); visitor.on_attribute("strides", m_strides); visitor.on_attribute("dilations", m_dilations); visitor.on_attribute("pads_begin", m_pads_begin); diff --git a/src/common/transformations/src/transformations/common_optimizations/conv_bias_fusion.cpp b/src/common/legacy/src/transformations/convert_opset1_to_legacy/conv_bias_fusion.cpp similarity index 94% rename from src/common/transformations/src/transformations/common_optimizations/conv_bias_fusion.cpp rename to src/common/legacy/src/transformations/convert_opset1_to_legacy/conv_bias_fusion.cpp index 2cec36d7bf5..36ed9e4261f 100644 --- a/src/common/transformations/src/transformations/common_optimizations/conv_bias_fusion.cpp +++ b/src/common/legacy/src/transformations/convert_opset1_to_legacy/conv_bias_fusion.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "transformations/common_optimizations/conv_bias_fusion.hpp" +#include "legacy/transformations/convert_opset1_to_legacy/conv_bias_fusion.hpp" #include #include @@ -13,11 +13,10 @@ #include #include -#include -#include +#include +#include #include -#include "itt.hpp" using namespace ngraph; @@ -162,7 +161,6 @@ bool conv_callback(ngraph::pattern::Matcher &m) { NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvAddFusion, "ConvAddFusion", 0); ngraph::pass::ConvAddFusion::ConvAddFusion() { - MATCHER_SCOPE(ConvAddFusion); auto conv = ngraph::pattern::wrap_type(pattern::consumers_count(1)); auto add = ngraph::pattern::wrap_type({conv, pattern::any_input()}); @@ -170,14 +168,13 @@ ngraph::pass::ConvAddFusion::ConvAddFusion() { return conv_callback(m); }; - auto m = std::make_shared(add, matcher_name); + auto m = std::make_shared(add, "ConvAddFusion"); register_matcher(m, callback); } NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvMultiplyFusion, "ConvMultiplyFusion", 0); ngraph::pass::ConvMultiplyFusion::ConvMultiplyFusion() { - MATCHER_SCOPE(ConvMultiplyFusion); auto conv = ngraph::pattern::wrap_type(pattern::consumers_count(1)); auto add = ngraph::pattern::wrap_type({conv, pattern::any_input()}); @@ -185,14 +182,13 @@ ngraph::pass::ConvMultiplyFusion::ConvMultiplyFusion() { return conv_callback(m); }; - auto m = std::make_shared(add, matcher_name); + auto m = std::make_shared(add, "ConvMultiplyFusion"); register_matcher(m, callback); } NGRAPH_RTTI_DEFINITION(ngraph::pass::DeconvAddFusion, "DeconvAddFusion", 0); ngraph::pass::DeconvAddFusion::DeconvAddFusion() { - MATCHER_SCOPE(DeconvAddFusion); auto conv = ngraph::pattern::wrap_type(pattern::consumers_count(1)); auto add = ngraph::pattern::wrap_type({conv, pattern::any_input()}); @@ -200,6 +196,6 @@ ngraph::pass::DeconvAddFusion::DeconvAddFusion() { return conv_callback(m); }; - auto m = std::make_shared(add, matcher_name); + auto m = std::make_shared(add, "DeconvAddFusion"); register_matcher(m, callback); } diff --git a/src/common/transformations/src/transformations/op_conversions/convert_convolutions.cpp b/src/common/legacy/src/transformations/convert_opset1_to_legacy/convert_convolutions.cpp similarity index 93% rename from src/common/transformations/src/transformations/op_conversions/convert_convolutions.cpp rename to src/common/legacy/src/transformations/convert_opset1_to_legacy/convert_convolutions.cpp index 1f0fb32ae6b..4101f28b495 100644 --- a/src/common/transformations/src/transformations/op_conversions/convert_convolutions.cpp +++ b/src/common/legacy/src/transformations/convert_opset1_to_legacy/convert_convolutions.cpp @@ -2,8 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "itt.hpp" -#include "transformations/op_conversions/convert_convolutions.hpp" +#include "legacy/transformations/convert_opset1_to_legacy/convert_convolutions.hpp" #include #include @@ -11,8 +10,8 @@ #include #include -#include -#include +#include +#include #include @@ -20,7 +19,6 @@ NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvertConvolutions, "ConvertConvolutions", NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvertConvolution, "ConvertConvolution", 0); ngraph::pass::ConvertConvolution::ConvertConvolution() { - MATCHER_SCOPE(ConvertConvolution); auto conv = ngraph::pattern::wrap_type(); ngraph::matcher_pass_callback callback = [](pattern::Matcher& m) { @@ -44,14 +42,13 @@ ngraph::pass::ConvertConvolution::ConvertConvolution() { return true; }; - auto m = std::make_shared(conv, matcher_name); + auto m = std::make_shared(conv, "ConvertConvolution"); this->register_matcher(m, callback); } NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvertGroupConvolution, "ConvertGroupConvolution", 0); ngraph::pass::ConvertGroupConvolution::ConvertGroupConvolution() { - MATCHER_SCOPE(ConvertGroupConvolution); auto gconv = ngraph::pattern::wrap_type(); ngraph::matcher_pass_callback callback = [](pattern::Matcher& m) { @@ -91,14 +88,13 @@ ngraph::pass::ConvertGroupConvolution::ConvertGroupConvolution() { return true; }; - auto m = std::make_shared(gconv, matcher_name); + auto m = std::make_shared(gconv, "ConvertGroupConvolution"); this->register_matcher(m, callback); } NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvertDeconvolution, "ConvertDeconvolution", 0); ngraph::pass::ConvertDeconvolution::ConvertDeconvolution() { - MATCHER_SCOPE(ConvertDeconvolution); auto conv = ngraph::pattern::wrap_type(); ngraph::matcher_pass_callback callback = [](pattern::Matcher& m) { @@ -125,14 +121,13 @@ ngraph::pass::ConvertDeconvolution::ConvertDeconvolution() { return true; }; - auto m = std::make_shared(conv, matcher_name); + auto m = std::make_shared(conv, "ConvertDeconvolution"); this->register_matcher(m, callback); } NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvertGroupDeconvolution, "ConvertGroupDeconvolution", 0); ngraph::pass::ConvertGroupDeconvolution::ConvertGroupDeconvolution() { - MATCHER_SCOPE(ConvertGroupDeconvolution); auto gconv = ngraph::pattern::wrap_type(); ngraph::matcher_pass_callback callback = [](pattern::Matcher& m) { @@ -171,6 +166,6 @@ ngraph::pass::ConvertGroupDeconvolution::ConvertGroupDeconvolution() { return true; }; - auto m = std::make_shared(gconv, matcher_name); + auto m = std::make_shared(gconv, "ConvertGroupDeconvolution"); this->register_matcher(m, callback); } diff --git a/src/common/legacy/src/transformations/convert_opset1_to_legacy/convert_opset1_to_legacy.cpp b/src/common/legacy/src/transformations/convert_opset1_to_legacy/convert_opset1_to_legacy.cpp index 29d8f1dd199..0eb5da216bb 100644 --- a/src/common/legacy/src/transformations/convert_opset1_to_legacy/convert_opset1_to_legacy.cpp +++ b/src/common/legacy/src/transformations/convert_opset1_to_legacy/convert_opset1_to_legacy.cpp @@ -42,8 +42,8 @@ #include #include -#include -#include +#include "legacy/transformations/convert_opset1_to_legacy/conv_bias_fusion.hpp" +#include "legacy/transformations/convert_opset1_to_legacy/convert_convolutions.hpp" #include #include diff --git a/src/common/legacy/src/transformations/convert_opset1_to_legacy/reshape_1d_ops.cpp b/src/common/legacy/src/transformations/convert_opset1_to_legacy/reshape_1d_ops.cpp index ae52fd0dd05..b1113da4639 100644 --- a/src/common/legacy/src/transformations/convert_opset1_to_legacy/reshape_1d_ops.cpp +++ b/src/common/legacy/src/transformations/convert_opset1_to_legacy/reshape_1d_ops.cpp @@ -11,7 +11,7 @@ #include #include -#include "ngraph_ops/convolution_ie.hpp" +#include "legacy/ngraph_ops/convolution_ie.hpp" #include "transformations/utils/utils.hpp" using namespace ngraph; diff --git a/src/common/transformations/src/transformations/common_optimizations/convert_nms_gather_path_to_unsigned.cpp b/src/common/transformations/src/transformations/common_optimizations/convert_nms_gather_path_to_unsigned.cpp index 8cf9091fcd5..35994a0af5d 100644 --- a/src/common/transformations/src/transformations/common_optimizations/convert_nms_gather_path_to_unsigned.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/convert_nms_gather_path_to_unsigned.cpp @@ -1,7 +1,6 @@ // Copyright (C) 2018-2021 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // - #include "transformations/common_optimizations/convert_nms_gather_path_to_unsigned.hpp" #include #include @@ -16,111 +15,95 @@ #include "itt.hpp" #include "ngraph/node.hpp" -using namespace ngraph; using namespace std; -class InitNMSPath: public pass::MatcherPass { -public: - NGRAPH_RTTI_DECLARATION; - - InitNMSPath() { - MATCHER_SCOPE(InitNMSPath); - - auto nms_pattern = pattern::wrap_type(); - - matcher_pass_callback callback = [=](pattern::Matcher &m) { - const auto& out_nodes = m.get_match_root()->output(0).get_target_inputs(); - for (const auto& out_node : out_nodes) { - ov::set_nms_selected_indices(out_node.get_node()); - } - return true; - }; - - auto m = make_shared(nms_pattern, matcher_name); - register_matcher(m, callback); - } -}; - -NGRAPH_RTTI_DEFINITION(InitNMSPath, "InitNMSPath", 0); - - +namespace ngraph { +namespace pass { +class InitNMSPath : public pass::MatcherPass { + public: + NGRAPH_RTTI_DECLARATION; + InitNMSPath() { + MATCHER_SCOPE(InitNMSPath); + auto nms_pattern = pattern::wrap_type(); + matcher_pass_callback callback = [=](pattern::Matcher &m) { + const auto &out_nodes = m.get_match_root()->output(0).get_target_inputs(); + for (const auto & out_node : out_nodes) { + ov::set_nms_selected_indices(out_node.get_node()); + } + return true; + }; + auto m = make_shared(nms_pattern, matcher_name); + register_matcher(m, callback); + } + }; class PropagateNMSPath: public pass::MatcherPass { -public: - NGRAPH_RTTI_DECLARATION; - - PropagateNMSPath(){ - MATCHER_SCOPE(PropagateNMSPath); - - auto node_pattern = pattern::wrap_type< - opset8::Squeeze, - opset8::Unsqueeze, - opset8::Reshape, - op::util::BroadcastBase, - opset8::StridedSlice, - opset8::VariadicSplit, - opset8::Concat, - opset8::Convert>(); - - matcher_pass_callback callback = [=](pattern::Matcher &m) { - auto node = m.get_match_root(); - const auto & inputs = node->input_values(); - if (any_of(inputs.begin(), inputs.end(), [](const Output & output) { - return ov::has_nms_selected_indices(output.get_node()); - })) { - ov::set_nms_selected_indices(node.get()); - } - return true; - }; - - auto m = make_shared(node_pattern, matcher_name); - register_matcher(m, callback); - } -}; - -NGRAPH_RTTI_DEFINITION(PropagateNMSPath, "PropagateNMSPath", 0); - + public: + NGRAPH_RTTI_DECLARATION; + PropagateNMSPath(){ + MATCHER_SCOPE(PropagateNMSPath); + auto node_pattern = pattern::wrap_type< + opset8::Squeeze, + opset8::Unsqueeze, + opset8::Reshape, + op::util::BroadcastBase, + opset8::StridedSlice, + opset8::VariadicSplit, + opset8::Concat, + opset8::Convert>(); + matcher_pass_callback callback = [=](pattern::Matcher &m) { + auto node = m.get_match_root(); + const auto & inputs = node->input_values(); + if (any_of(inputs.begin(), inputs.end(), [](const Output & output) { + return ov::has_nms_selected_indices(output.get_node()); + })) { + ov::set_nms_selected_indices(node.get()); + } + return true; + }; + auto m = make_shared(node_pattern, matcher_name); + register_matcher(m, callback); + } + }; class UpdateConvertGather: public pass::MatcherPass { -public: - NGRAPH_RTTI_DECLARATION; + public: + NGRAPH_RTTI_DECLARATION; + UpdateConvertGather(){ + MATCHER_SCOPE(UpdateConvertGather); + auto node_pattern = pattern::wrap_type(); + matcher_pass_callback callback = [=](pattern::Matcher &m) { + auto gather = m.get_match_root(); + auto indices = gather->input_value(1); + if (!ov::has_nms_selected_indices(indices.get_node())) + return false; + auto out_type = (indices.get_element_type() == element::i64 ? element::u64 : element::u32); + auto existing_convert = dynamic_pointer_cast(indices.get_node_shared_ptr()); + if (existing_convert && indices.get_target_inputs().size() == 1) { + existing_convert->set_convert_element_type(out_type); + existing_convert->validate_and_infer_types(); + } else { + auto new_convert_to_unsigned = make_shared(indices, out_type); + gather->input(1).replace_source_output(new_convert_to_unsigned); + copy_runtime_info(gather, new_convert_to_unsigned); + } + return true; + }; + auto m = make_shared(node_pattern, matcher_name); + register_matcher(m, callback); + } + }; +}// namespace pass +}// namespace ngraph - UpdateConvertGather(){ - MATCHER_SCOPE(UpdateConvertGather); +NGRAPH_RTTI_DEFINITION(ngraph::pass::InitNMSPath, "InitNMSPath", 0); +NGRAPH_RTTI_DEFINITION(ngraph::pass::PropagateNMSPath, "PropagateNMSPath", 0); +NGRAPH_RTTI_DEFINITION(ngraph::pass::UpdateConvertGather, "UpdateConvertGather", 0); - auto node_pattern = pattern::wrap_type(); - - matcher_pass_callback callback = [=](pattern::Matcher &m) { - auto gather = m.get_match_root(); - auto indices = gather->input_value(1); - - if (!ov::has_nms_selected_indices(indices.get_node())) - return false; - - auto out_type = (indices.get_element_type() == element::i64 ? element::u64 : element::u32); - auto existing_convert = dynamic_pointer_cast(indices.get_node_shared_ptr()); - if (existing_convert && indices.get_target_inputs().size() == 1) { - existing_convert->set_convert_element_type(out_type); - existing_convert->validate_and_infer_types(); - } else { - auto new_convert_to_unsigned = make_shared(indices, out_type); - gather->input(1).replace_source_output(new_convert_to_unsigned); - copy_runtime_info(gather, new_convert_to_unsigned); - } - return true; - }; - - auto m = make_shared(node_pattern, matcher_name); - register_matcher(m, callback); - } -}; - -NGRAPH_RTTI_DEFINITION(UpdateConvertGather, "UpdateConvertGather", 0); - -pass::ConvertNmsGatherPathToUnsigned::ConvertNmsGatherPathToUnsigned() { +ngraph::pass::ConvertNmsGatherPathToUnsigned::ConvertNmsGatherPathToUnsigned() { add_matcher(); add_matcher(); add_matcher(); } -NGRAPH_RTTI_DEFINITION(pass::ConvertNmsGatherPathToUnsigned, "ConvertNmsGatherPathToUnsigned", 0); +NGRAPH_RTTI_DEFINITION(ngraph::pass::ConvertNmsGatherPathToUnsigned, "ConvertNmsGatherPathToUnsigned", 0); \ No newline at end of file diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 8b5f8efca43..b2d4b621326 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -2,6 +2,10 @@ # SPDX-License-Identifier: Apache-2.0 # +if(ENABLE_LTO) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) +endif() + add_definitions(-DIN_OV_CORE_LIBRARY) set(OV_CORE_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/src/core/include/openvino/op/gather_elements.hpp b/src/core/include/openvino/op/gather_elements.hpp index 7cb59da5216..2ac8546d5b0 100644 --- a/src/core/include/openvino/op/gather_elements.hpp +++ b/src/core/include/openvino/op/gather_elements.hpp @@ -34,6 +34,10 @@ public: private: int64_t m_axis; + template + void friend shape_infer(const GatherElements* op, + const std::vector& input_shapes, + std::vector& output_shapes); }; } // namespace v6 } // namespace op diff --git a/src/core/include/openvino/op/i420_to_bgr.hpp b/src/core/include/openvino/op/i420_to_bgr.hpp index 59f1e661fd2..473a8e73fd7 100644 --- a/src/core/include/openvino/op/i420_to_bgr.hpp +++ b/src/core/include/openvino/op/i420_to_bgr.hpp @@ -34,6 +34,8 @@ class OPENVINO_API I420toBGR : public util::ConvertColorI420Base { public: OPENVINO_OP("I420toBGR", "opset8", util::ConvertColorI420Base); + BWDCMP_RTTI_DECLARATION; + I420toBGR() = default; /// \brief Constructs a conversion operation from input image in I420 format diff --git a/src/core/include/openvino/op/i420_to_rgb.hpp b/src/core/include/openvino/op/i420_to_rgb.hpp index c95f5de6b5c..cc0d1752de1 100644 --- a/src/core/include/openvino/op/i420_to_rgb.hpp +++ b/src/core/include/openvino/op/i420_to_rgb.hpp @@ -34,6 +34,8 @@ class OPENVINO_API I420toRGB : public util::ConvertColorI420Base { public: OPENVINO_OP("I420toRGB", "opset8", util::ConvertColorI420Base); + BWDCMP_RTTI_DECLARATION; + I420toRGB() = default; /// \brief Constructs a conversion operation from input image in I420 format diff --git a/src/core/include/openvino/op/one_hot.hpp b/src/core/include/openvino/op/one_hot.hpp index 9ee87599d93..7bbd2970f93 100644 --- a/src/core/include/openvino/op/one_hot.hpp +++ b/src/core/include/openvino/op/one_hot.hpp @@ -42,15 +42,16 @@ public: bool has_evaluate() const override; /// \return The index of the one-hot axis. - int64_t get_axis() const { + const int64_t& get_axis() const { return m_axis; } - void set_axis(int64_t axis) { - m_axis = axis; - } + void set_axis(int64_t axis); protected: int64_t m_axis; + +private: + friend void inline resolve_axis(OneHot* op); }; } // namespace v1 } // namespace op diff --git a/src/core/include/openvino/op/slice.hpp b/src/core/include/openvino/op/slice.hpp index 45d7bfec2b1..5bbb36c4987 100644 --- a/src/core/include/openvino/op/slice.hpp +++ b/src/core/include/openvino/op/slice.hpp @@ -15,6 +15,8 @@ class OPENVINO_API Slice : public Op { public: OPENVINO_OP("Slice", "opset8"); + BWDCMP_RTTI_DECLARATION; + Slice() = default; /// diff --git a/src/core/include/openvino/op/util/gather_base.hpp b/src/core/include/openvino/op/util/gather_base.hpp index c3a00450a11..53971c862f5 100644 --- a/src/core/include/openvino/op/util/gather_base.hpp +++ b/src/core/include/openvino/op/util/gather_base.hpp @@ -36,6 +36,7 @@ public: OPENVINO_SUPPRESS_DEPRECATED_END bool constant_fold(OutputVector& output_values, const OutputVector& inputs_values) override; + const int64_t& get_batch_dims() const; protected: int64_t m_batch_dims = 0; diff --git a/src/core/reference/CMakeLists.txt b/src/core/reference/CMakeLists.txt index 0827873c4d9..82efbca3095 100644 --- a/src/core/reference/CMakeLists.txt +++ b/src/core/reference/CMakeLists.txt @@ -22,10 +22,6 @@ ie_faster_build(${TARGET_NAME} UNITY PCH PRIVATE "src/precomp.hpp") -if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - target_compile_options(${TARGET_NAME} PUBLIC /wd4146) -endif() - target_compile_definitions(${TARGET_NAME} PRIVATE XBYAK_NO_OP_NAMES XBYAK64) if(NOT BUILD_SHARED_LIBS) diff --git a/src/core/reference/include/ngraph/runtime/reference/abs.hpp b/src/core/reference/include/ngraph/runtime/reference/abs.hpp index e3738d17ee0..6528ca0674b 100644 --- a/src/core/reference/include/ngraph/runtime/reference/abs.hpp +++ b/src/core/reference/include/ngraph/runtime/reference/abs.hpp @@ -5,11 +5,17 @@ #pragma once #include +#include namespace ngraph { namespace runtime { namespace reference { -template +template ::value, bool>::type = true> +void abs(const T* arg, T* out, size_t count) { + std::copy(arg, arg + count, out); +} + +template ::value, bool>::type = true> void abs(const T* arg, T* out, size_t count) { for (size_t i = 0; i < count; i++) { // TODO: generic "abs" doesn't work here for some reason. diff --git a/src/core/reference/include/ngraph/runtime/reference/max.hpp b/src/core/reference/include/ngraph/runtime/reference/max.hpp index 842e6e9a051..35dc081fbdf 100644 --- a/src/core/reference/include/ngraph/runtime/reference/max.hpp +++ b/src/core/reference/include/ngraph/runtime/reference/max.hpp @@ -16,8 +16,7 @@ namespace runtime { namespace reference { template void max(const T* arg, T* out, const Shape& in_shape, const AxisSet& reduction_axes) { - T minval = - std::numeric_limits::has_infinity ? T(-std::numeric_limits::infinity()) : std::numeric_limits::min(); + T minval = std::numeric_limits::lowest(); constexpr bool dont_keep_dims_in_output = false; const auto out_shape = reduce(in_shape, reduction_axes, dont_keep_dims_in_output); diff --git a/src/core/reference/include/ngraph/runtime/reference/sigmoid.hpp b/src/core/reference/include/ngraph/runtime/reference/sigmoid.hpp index baaf3db2add..bf9b0743675 100644 --- a/src/core/reference/include/ngraph/runtime/reference/sigmoid.hpp +++ b/src/core/reference/include/ngraph/runtime/reference/sigmoid.hpp @@ -6,11 +6,21 @@ #include #include +#include namespace ngraph { namespace runtime { namespace reference { -template +template ::value, bool>::type = true> +void sigmoid(const T* arg, T* out, size_t count) { + T exp_value; + for (size_t i = 0; i < count; i++) { + exp_value = std::exp(-static_cast::type>(arg[i])); + out[i] = 1 / (1 + exp_value); + } +} + +template ::value, bool>::type = true> void sigmoid(const T* arg, T* out, size_t count) { T exp_value; for (size_t i = 0; i < count; i++) { diff --git a/src/core/shape_inference/include/gather_elements_shape_inference.hpp b/src/core/shape_inference/include/gather_elements_shape_inference.hpp new file mode 100644 index 00000000000..65cd0d20f39 --- /dev/null +++ b/src/core/shape_inference/include/gather_elements_shape_inference.hpp @@ -0,0 +1,79 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#pragma once +#include + +#include "utils.hpp" + +namespace ov { +namespace op { +namespace v6 { +template +void shape_infer(const GatherElements* op, const std::vector& input_shapes, std::vector& output_shapes) { + NODE_VALIDATION_CHECK(op, input_shapes.size() == 2 && output_shapes.size() == 1); + using DimType = typename std::iterator_traits::value_type; + + const auto& data_pshape = input_shapes[0]; + const auto& indices_pshape = input_shapes[1]; + auto data_rank = data_pshape.rank(); + auto indices_rank = indices_pshape.rank(); + auto& output_shape = output_shapes[0]; + + int64_t axis = op->m_axis; + if (data_rank.is_static()) + axis = ov::normalize_axis(op, axis, data_rank); + + output_shape = indices_pshape; + + NODE_VALIDATION_CHECK(op, data_rank.is_dynamic() || data_rank.get_length() >= 1, "data rank must be >= 1."); + + NODE_VALIDATION_CHECK(op, + indices_rank.is_dynamic() || indices_rank.get_length() >= 1, + "indices rank must be >= 1."); + + if (data_rank.is_static() && indices_rank.is_dynamic()) { + // output has the same rank of data + output_shape = data_pshape; + output_shape[axis] = DimType(); + return; + } + + if (data_rank.is_dynamic()) { + // can't decide rank, set it to all dynamic + if (indices_rank.is_dynamic()) + output_shape = PartialShape::dynamic(); + return; + } + + // left only case when data_rank.is_static() && indices_rank.is_static() + NODE_VALIDATION_CHECK(op, + data_rank.get_length() == indices_rank.get_length(), + "data and indices rank must be equal. But instead got: ", + data_rank.get_length(), + " and ", + indices_rank.get_length()); + + for (int i = 0; i < indices_rank.get_length(); i++) { + if (i != axis) { + // if size of the current dimension of indices is unknown it will be retrieved from data + // e.g., if data_shape = {4, 4, ?}, indices_shape = {1, ?, 5} and axis = 0 + // (and if intervals intersect) then output_pshape will be {1, 4, 5} + + NODE_VALIDATION_CHECK(op, + data_pshape[i].compatible(indices_pshape[i]), + "Shapes ", + data_pshape, + " and ", + indices_pshape, + " are not consistent. data and indices must have equal or " + "intersecting sizes, except for axis ", + axis); + + output_shape[i] = data_pshape[i] & indices_pshape[i]; + } + } +} +} // namespace v6 +} // namespace op +} // namespace ov \ No newline at end of file diff --git a/src/core/shape_inference/include/gather_shape_inference.hpp b/src/core/shape_inference/include/gather_shape_inference.hpp new file mode 100644 index 00000000000..e424cfce325 --- /dev/null +++ b/src/core/shape_inference/include/gather_shape_inference.hpp @@ -0,0 +1,112 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#pragma once +#include + +#include "utils.hpp" + +namespace ov { +namespace op { +namespace util { +template +void shape_infer(const GatherBase* op, + const std::vector& input_shapes, + std::vector& output_shapes, + const std::map>& constant_data = {}) { + NODE_VALIDATION_CHECK(op, input_shapes.size() == 3 && output_shapes.size() == 1); + const auto& data_pshape = input_shapes[0]; + const auto& indices_pshape = input_shapes[1]; + const auto& axis_pshape = input_shapes[2]; + auto data_rank = data_pshape.rank(); + auto indices_rank = indices_pshape.rank(); + auto axis_rank = axis_pshape.rank(); + auto& output_pshape = output_shapes[0]; + + if (axis_rank.is_static() && axis_pshape.is_static()) { + const auto axis_is_scalar = axis_rank.get_length() == 0; + const auto axis_has_one_elem = axis_rank.get_length() == 1 && axis_pshape[0].get_length() == 1; + NODE_VALIDATION_CHECK(op, + axis_is_scalar || axis_has_one_elem, + "Axis input must be scalar or have 1 element. But instead got axis_shape = ", + axis_pshape); + } + + int64_t batch_dims = op->get_batch_dims(); + if (batch_dims < 0 && indices_rank.is_static()) { + batch_dims += indices_rank.get_length(); + } + + std::vector axes_val; + bool axis_is_set = get_data_as_int64(2, op, axes_val, constant_data); + int64_t axis = 0; + + if (axis_is_set) { + axis = axes_val[0]; + + if (data_rank.is_static()) { + axis = ov::normalize_axis(op, axis, data_rank); + } + // batch_dims, axis both can be positive by default or after normalization if data_rank & + // indices_rank are static. + // If at least one of them is negative we cannot check their consistency. + NODE_VALIDATION_CHECK(op, + batch_dims <= axis || batch_dims < 0 || axis < 0, + "After normalization batch_dims must be <= axis. But instead got: batch_dims = ", + batch_dims, + ", axis = ", + axis); + } + + if (indices_rank.is_static() && batch_dims >= 0) { + NODE_VALIDATION_CHECK(op, + batch_dims <= indices_rank.get_length(), + "The batch_dims must be <= indices_rank. But instead got: batch_dims = ", + batch_dims, + ", indices_rank = ", + indices_rank.get_length()); + } + + if (data_rank.is_static() && indices_rank.is_static()) { + auto out_rank = data_rank.get_length() + indices_rank.get_length() - 1 - batch_dims; + // scalar has one + output_pshape.resize(out_rank); + + // implementation of out_shape formula + // data.shape[:batch_dims] + data.shape[batch_dims:axis] + indices.shape[batch_dims:] + + // data.shape[axis + 1:] + int i = 0; + for (; i < batch_dims; i++) { + NODE_VALIDATION_CHECK(op, + data_pshape[i].compatible(indices_pshape[i]), + "Shapes ", + data_pshape, + " and ", + indices_pshape, + " are not consistent. data and indices must have equal or " + "intersecting sizes until batch_dims"); + + output_pshape[i] = data_pshape[i] & indices_pshape[i]; + } + + if (axis_is_set) { + for (; i < axis; i++) { + output_pshape[i] = data_pshape[i]; + } + for (; i < axis + indices_rank.get_length() - batch_dims; i++) { + output_pshape[i] = indices_pshape[batch_dims - axis + i]; + } + for (; i < out_rank; i++) { + output_pshape[i] = data_pshape[batch_dims + 1 - indices_rank.get_length() + i]; + } + } + } else { + auto out_rank = data_rank + indices_rank - 1 - batch_dims; + if (batch_dims < 0) + out_rank = out_rank - indices_rank.get_max_length(); + output_pshape = PartialShape::dynamic(out_rank); + } +} +} // namespace util +} // namespace op +} // namespace ov diff --git a/src/core/shape_inference/include/gather_tree_shape_inference.hpp b/src/core/shape_inference/include/gather_tree_shape_inference.hpp new file mode 100644 index 00000000000..c05cbe81315 --- /dev/null +++ b/src/core/shape_inference/include/gather_tree_shape_inference.hpp @@ -0,0 +1,51 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#pragma once +#include + +namespace ov { +namespace op { +namespace v1 { +template +void shape_infer(const GatherTree* op, const std::vector& input_shapes, std::vector& output_shapes) { + NODE_VALIDATION_CHECK(op, input_shapes.size() == 4 && output_shapes.size() == 1); + using DimType = typename std::iterator_traits::value_type; + const auto& step_ids_pshape = input_shapes[0]; + const auto& parent_idx_pshape = input_shapes[1]; + const auto& max_seq_len_pshape = input_shapes[2]; + const auto& end_token_pshape = input_shapes[3]; + auto& result_pshape = output_shapes[0]; + result_pshape = step_ids_pshape; + NODE_VALIDATION_CHECK(op, + T::merge_into(result_pshape, parent_idx_pshape) && result_pshape.rank().compatible(3), + "step_ids and parent_idx inputs must have the same shape with rank 3. Got: ", + step_ids_pshape, + " and ", + parent_idx_pshape, + ", respectively"); + + NODE_VALIDATION_CHECK(op, + max_seq_len_pshape.rank().compatible(1), + "max_seq_len input must have rank 1. Got: ", + max_seq_len_pshape); + + if (result_pshape.rank().is_static() && max_seq_len_pshape.rank().is_static()) { + NODE_VALIDATION_CHECK(op, + DimType::merge(result_pshape[1], result_pshape[1], max_seq_len_pshape[0]), + "Number of elements of max_seq_len input must match BATCH_SIZE dimension of " + "step_ids/parent_idx inputs. Got: ", + result_pshape[1], + " and ", + max_seq_len_pshape[0], + ", respectively"); + } + + NODE_VALIDATION_CHECK(op, + end_token_pshape.rank().compatible(0), + "end_token input must be scalar. Got: ", + end_token_pshape); +} +} // namespace v1 +} // namespace op +} // namespace ov \ No newline at end of file diff --git a/src/core/shape_inference/include/one_hot_shape_inference.hpp b/src/core/shape_inference/include/one_hot_shape_inference.hpp new file mode 100644 index 00000000000..26b73b0bc52 --- /dev/null +++ b/src/core/shape_inference/include/one_hot_shape_inference.hpp @@ -0,0 +1,72 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#pragma once +#include +#include + +#include "utils.hpp" + +namespace ov { +namespace op { +namespace v1 { +void inline resolve_axis(OneHot* op) { + const auto& indices_shape = op->get_input_partial_shape(0); + if (indices_shape.rank().is_static()) { + const auto indices_rank = indices_shape.rank().get_length(); + op->m_axis = ov::normalize_axis(op, op->m_axis, indices_rank + 1, -indices_rank - 1, indices_rank); + } +} + +template +void shape_infer(const OneHot* op, + const std::vector& input_shapes, + std::vector& output_shapes, + const std::map>& constant_data = {}) { + NODE_VALIDATION_CHECK(op, input_shapes.size() == 4 && output_shapes.size() == 1); + using DimType = typename std::iterator_traits::value_type; + const auto& indices_shape = input_shapes[0]; + const auto& depth_shape = input_shapes[1]; + const auto& on_value_shape = input_shapes[2]; + const auto& off_value_shape = input_shapes[3]; + + NODE_VALIDATION_CHECK(op, + depth_shape.is_dynamic() || ngraph::is_scalar(depth_shape.to_shape()), + "depth input must be scalar."); + + NODE_VALIDATION_CHECK(op, + on_value_shape.is_dynamic() || ngraph::is_scalar(on_value_shape.to_shape()), + "on_value input must be scalar."); + + NODE_VALIDATION_CHECK(op, + off_value_shape.is_dynamic() || ngraph::is_scalar(off_value_shape.to_shape()), + "off_value input must be scalar."); + + auto& result_shape = output_shapes[0]; + std::vector depth_vals; + bool depth_is_set = get_data_as_int64(1, op, depth_vals, constant_data); + if (indices_shape.rank().is_static()) { + // decide result rank + result_shape = indices_shape; + const auto indices_rank = indices_shape.rank().get_length(); + const auto axis = ov::normalize_axis(op, op->get_axis(), indices_rank + 1, -indices_rank - 1, indices_rank); + + if (depth_is_set) { + int64_t depth_val = depth_vals[0]; + NODE_VALIDATION_CHECK(op, + depth_val > 0, + "The value of 'depth' must be a positive number.", + " (got ", + depth_val, + ")."); + result_shape.insert(result_shape.begin() + axis, DimType(depth_val)); + } else { + result_shape.insert(result_shape.begin() + axis, DimType()); + } + } else { + result_shape = PartialShape::dynamic(); + } +} +} // namespace v1 +} // namespace op +} // namespace ov diff --git a/src/core/src/op/gather_elements.cpp b/src/core/src/op/gather_elements.cpp index fb79ac7be22..9d1efe0b20b 100644 --- a/src/core/src/op/gather_elements.cpp +++ b/src/core/src/op/gather_elements.cpp @@ -4,6 +4,8 @@ #include "ngraph/op/gather_elements.hpp" +#include + #include "itt.hpp" #include "ngraph/shape.hpp" @@ -32,69 +34,9 @@ void op::v6::GatherElements::validate_and_infer_types() { const auto& data_pshape = get_input_partial_shape(0); const auto& indices_pshape = get_input_partial_shape(1); - auto data_rank = data_pshape.rank(); - auto indices_rank = indices_pshape.rank(); - - int64_t axis = m_axis; - if (m_axis < 0 && data_rank.is_static()) - axis += data_rank.get_length(); - - set_output_type(0, data_type, indices_pshape); - - NODE_VALIDATION_CHECK(this, data_rank.is_dynamic() || data_rank.get_length() >= 1, "data rank must be >= 1."); - - NODE_VALIDATION_CHECK( - this, - data_rank.is_dynamic() || ((-data_rank.get_length() <= m_axis) && (m_axis < data_rank.get_length())), - "axis must be within interval (-data.rank, data.rank - 1). But instead Got: ", - m_axis); - - NODE_VALIDATION_CHECK(this, - indices_rank.is_dynamic() || indices_rank.get_length() >= 1, - "indices rank must be >= 1."); - - if (data_rank.is_static() && indices_rank.is_dynamic()) { - ov::PartialShape out_shape_info(data_pshape); - out_shape_info[axis] = Dimension::dynamic(); - set_output_type(0, data_type, out_shape_info); - return; - } - - if (data_rank.is_dynamic()) { - if (indices_rank.is_dynamic()) - set_output_type(0, data_type, ov::PartialShape::dynamic()); - return; - } - - // left only case when data_rank.is_static() && indices_rank.is_static() - NODE_VALIDATION_CHECK(this, - data_rank.get_length() == indices_rank.get_length(), - "data and indices rank must be equal. But instead got: ", - data_rank.get_length(), - " and ", - indices_rank.get_length()); - - ov::PartialShape output_pshape(indices_pshape); - for (int i = 0; i < indices_rank.get_length(); i++) { - if (i != axis) { - // if size of the current dimension of indices is unknown it will be retrieved from data - // e.g., if data_shape = {4, 4, ?}, indices_shape = {1, ?, 5} and axis = 0 - // (and if intervals intersect) then output_pshape will be {1, 4, 5} - - NODE_VALIDATION_CHECK(this, - data_pshape[i].compatible(indices_pshape[i]), - "Shapes ", - data_pshape, - " and ", - indices_pshape, - " are not consistent. data and indices must have equal or " - "intersecting sizes, except for axis ", - m_axis); - - output_pshape[i] = data_pshape[i] & indices_pshape[i]; - } - } - set_output_type(0, data_type, output_pshape); + std::vector input_shapes = {data_pshape, indices_pshape}, output_shapes = {PartialShape{}}; + shape_infer(this, input_shapes, output_shapes); + set_output_type(0, data_type, output_shapes[0]); } bool op::v6::GatherElements::visit_attributes(AttributeVisitor& visitor) { diff --git a/src/core/src/op/gather_tree.cpp b/src/core/src/op/gather_tree.cpp index f46222e1ecd..6e18705405c 100644 --- a/src/core/src/op/gather_tree.cpp +++ b/src/core/src/op/gather_tree.cpp @@ -4,6 +4,8 @@ #include "ngraph/op/gather_tree.hpp" +#include + #include "itt.hpp" #include "ngraph/shape.hpp" @@ -63,38 +65,9 @@ void op::v1::GatherTree::validate_and_infer_types() { const auto& parent_idx_pshape = get_input_partial_shape(1); const auto& max_seq_len_pshape = get_input_partial_shape(2); const auto& end_token_pshape = get_input_partial_shape(3); + std::vector input_shapes = {step_ids_pshape, parent_idx_pshape, max_seq_len_pshape, end_token_pshape}, + output_shapes = {PartialShape{}}; + shape_infer(this, input_shapes, output_shapes); - PartialShape result_pshape{PartialShape::dynamic()}; - NODE_VALIDATION_CHECK(this, - PartialShape::merge_into(result_pshape, step_ids_pshape) && - PartialShape::merge_into(result_pshape, parent_idx_pshape) && - result_pshape.rank().compatible(3), - "step_ids and parent_idx inputs must have the same shape with rank 3. Got: ", - step_ids_pshape, - " and ", - parent_idx_pshape, - ", respectively"); - - NODE_VALIDATION_CHECK(this, - max_seq_len_pshape.rank().compatible(1), - "max_seq_len input must have rank 1. Got: ", - max_seq_len_pshape); - - if (result_pshape.rank().is_static() && max_seq_len_pshape.rank().is_static()) { - NODE_VALIDATION_CHECK(this, - Dimension::merge(result_pshape[1], result_pshape[1], max_seq_len_pshape[0]), - "Number of elements of max_seq_len input must match BATCH_SIZE dimension of " - "step_ids/parent_idx inputs. Got: ", - result_pshape[1], - " and ", - max_seq_len_pshape[0], - ", respectively"); - } - - NODE_VALIDATION_CHECK(this, - end_token_pshape.rank().compatible(0), - "end_token input must be scalar. Got: ", - end_token_pshape); - - set_output_type(0, result_et, result_pshape); + set_output_type(0, result_et, output_shapes[0]); } diff --git a/src/core/src/op/i420_to_bgr.cpp b/src/core/src/op/i420_to_bgr.cpp index b6eac7b3c35..4e38a102100 100644 --- a/src/core/src/op/i420_to_bgr.cpp +++ b/src/core/src/op/i420_to_bgr.cpp @@ -6,6 +6,8 @@ #include "itt.hpp" +BWDCMP_RTTI_DEFINITION(ov::op::v8::I420toBGR); + ov::op::v8::I420toBGR::I420toBGR(const Output& arg) : util::ConvertColorI420Base(arg, util::ConvertColorI420Base::ColorConversion::I420_TO_BGR) { constructor_validate_and_infer_types(); diff --git a/src/core/src/op/i420_to_rgb.cpp b/src/core/src/op/i420_to_rgb.cpp index 9375c6eb921..e9a293de2b4 100644 --- a/src/core/src/op/i420_to_rgb.cpp +++ b/src/core/src/op/i420_to_rgb.cpp @@ -6,6 +6,8 @@ #include "itt.hpp" +BWDCMP_RTTI_DEFINITION(ov::op::v8::I420toRGB); + ov::op::v8::I420toRGB::I420toRGB(const Output& arg) : util::ConvertColorI420Base(arg, util::ConvertColorI420Base::ColorConversion::I420_TO_RGB) { constructor_validate_and_infer_types(); diff --git a/src/core/src/op/one_hot.cpp b/src/core/src/op/one_hot.cpp index 2af7a5a8a9d..7427a5d145d 100644 --- a/src/core/src/op/one_hot.cpp +++ b/src/core/src/op/one_hot.cpp @@ -4,6 +4,8 @@ #include "ngraph/op/one_hot.hpp" +#include + #include "itt.hpp" #include "ngraph/attribute_visitor.hpp" #include "ngraph/op/util/op_types.hpp" @@ -51,55 +53,12 @@ void op::v1::OneHot::validate_and_infer_types() { const auto& on_value_shape = get_input_partial_shape(2); const auto& off_value_shape = get_input_partial_shape(3); - NODE_VALIDATION_CHECK(this, - depth_shape.is_dynamic() || ngraph::is_scalar(depth_shape.to_shape()), - "depth input must be scalar."); + std::vector input_shapes = {indices_shape, depth_shape, on_value_shape, off_value_shape}, + output_shapes = {PartialShape{}}; + resolve_axis(this); + shape_infer(this, input_shapes, output_shapes); - NODE_VALIDATION_CHECK(this, - on_value_shape.is_dynamic() || ngraph::is_scalar(on_value_shape.to_shape()), - "on_value input must be scalar."); - - NODE_VALIDATION_CHECK(this, - off_value_shape.is_dynamic() || ngraph::is_scalar(off_value_shape.to_shape()), - "off_value input must be scalar."); - - ov::PartialShape result_shape{ov::PartialShape::dynamic()}; - const auto& depth = input_value(1).get_node_shared_ptr(); - const auto& depth_constant = get_constant_from_source(input_value(1)); - if (indices_shape.rank().is_static()) { - std::vector out_dims{indices_shape}; - const auto indices_rank = indices_shape.rank().get_length(); - m_axis = ngraph::normalize_axis(this, m_axis, indices_rank + 1, -indices_rank - 1, indices_rank); - - auto depth_element_type = depth->get_output_element_type(0); - NODE_VALIDATION_CHECK(this, - depth_element_type.is_integral(), - "'depth' input element type must be an integer (got ", - depth_element_type, - ")."); - - NODE_VALIDATION_CHECK(this, - ngraph::is_scalar(depth->get_shape()), - "A scalar input should be provided as 'depth' to OneHot", - " (got ", - depth->get_shape(), - " elements)."); - if (depth_constant) { - int64_t depth_val = depth_constant->cast_vector()[0]; - NODE_VALIDATION_CHECK(this, - depth_val > 0, - "The value of 'depth' must be a positive number.", - " (got ", - depth_val, - ")."); - out_dims.insert(out_dims.begin() + m_axis, Dimension(depth_val)); - } else { - out_dims.insert(out_dims.begin() + m_axis, Dimension::dynamic()); - } - result_shape = out_dims; - } - - set_output_type(0, on_value_et, result_shape); + set_output_type(0, on_value_et, output_shapes[0]); } bool ngraph::op::v1::OneHot::visit_attributes(AttributeVisitor& visitor) { @@ -177,3 +136,8 @@ bool op::v1::OneHot::has_evaluate() const { } return false; } + +void op::v1::OneHot::set_axis(int64_t axis) { + m_axis = axis; + resolve_axis(this); +} diff --git a/src/core/src/op/range.cpp b/src/core/src/op/range.cpp index 4d850eb7667..670ebe07faf 100644 --- a/src/core/src/op/range.cpp +++ b/src/core/src/op/range.cpp @@ -314,7 +314,8 @@ void static check_step(const op::v0::Range* node, T step) { template static typename std::enable_if::value, T>::type adjust_for_step_and_sign(T span, T step) { - return ceil_div(span < 0 ? -span : span, step < 0 ? -step : step); + return ceil_div(span < 0 ? -static_cast::type>(span) : span, + step < 0 ? -static_cast::type>(step) : step); } template diff --git a/src/core/src/op/slice.cpp b/src/core/src/op/slice.cpp index 3c382718426..e4a7f2c54e4 100644 --- a/src/core/src/op/slice.cpp +++ b/src/core/src/op/slice.cpp @@ -16,6 +16,8 @@ using namespace std; using namespace ngraph; +BWDCMP_RTTI_DEFINITION(ov::op::v8::Slice); + op::v8::Slice::Slice(const Output& data, const Output& start, const Output& stop, diff --git a/src/core/src/op/topk.cpp b/src/core/src/op/topk.cpp index ef7b46f7290..ad95d9703df 100644 --- a/src/core/src/op/topk.cpp +++ b/src/core/src/op/topk.cpp @@ -319,8 +319,8 @@ size_t op::v1::TopK::validate_and_get_k(const shared_ptr& k_co " elements)."); NODE_VALIDATION_CHECK(this, - k_const_contents[0] > 0, - "The value of 'K' must be a positive number.", + k_const_contents[0] >= 0, + "The value of 'K' must be more or equal zero.", " (got ", k_const_contents[0], ")."); diff --git a/src/core/src/op/util/gather_base.cpp b/src/core/src/op/util/gather_base.cpp index 72541421879..99db6aa4df7 100644 --- a/src/core/src/op/util/gather_base.cpp +++ b/src/core/src/op/util/gather_base.cpp @@ -6,6 +6,7 @@ #include +#include "gather_shape_inference.hpp" #include "itt.hpp" #include "ngraph/op/concat.hpp" #include "ngraph/op/constant.hpp" @@ -34,98 +35,10 @@ void ov::op::util::GatherBase::validate_and_infer_types() { const auto& data_pshape = get_input_partial_shape(0); const auto& indices_pshape = get_input_partial_shape(1); const auto& axis_pshape = get_input_partial_shape(2); - auto data_rank = data_pshape.rank(); - auto indices_rank = indices_pshape.rank(); - auto axis_rank = axis_pshape.rank(); - - if (axis_rank.is_static() && axis_pshape.is_static()) { - const auto axis_is_scalar = axis_rank.get_length() == 0; - const auto axis_has_one_elem = axis_rank.get_length() == 1 && axis_pshape[0].get_length() == 1; - NODE_VALIDATION_CHECK(this, - axis_is_scalar || axis_has_one_elem, - "Axis input must be scalar or have 1 element. But instead got axis_shape = ", - axis_pshape); - } - - int64_t batch_dims = m_batch_dims; - if (batch_dims < 0 && indices_rank.is_static()) { - batch_dims += indices_rank.get_length(); - } - - bool axis_is_set = false; - if (get_constant_from_source(input_value(2))) - axis_is_set = true; - - if (axis_is_set) { - int64_t axis = get_axis(); // will be normalized to positive if data_rank is static - - // batch_dims, axis both can be positive by default or after normalization if data_rank & - // indices_rank are static. - // If at least one of them is negative we cannot check their consistency. - NODE_VALIDATION_CHECK(this, - batch_dims <= axis || batch_dims < 0 || axis < 0, - "After normalization batch_dims must be <= axis. But instead got: batch_dims = ", - batch_dims, - ", axis = ", - axis); - - NODE_VALIDATION_CHECK(this, - data_rank.is_dynamic() || (axis >= 0 && axis < data_rank.get_length()), - "Normalized axis must be >= 0 and < data_rank. But instead got axis = ", - axis, - " data_rank = ", - data_rank.get_interval()); - } - - if (indices_rank.is_static() && batch_dims >= 0) { - NODE_VALIDATION_CHECK(this, - batch_dims <= indices_rank.get_length(), - "The batch_dims must be <= indices_rank. But instead got: batch_dims = ", - batch_dims, - ", indices_rank = ", - indices_rank.get_length()); - } - - if (data_rank.is_static() && indices_rank.is_static()) { - auto out_rank = data_rank.get_length() + indices_rank.get_length() - 1 - batch_dims; - PartialShape output_pshape = PartialShape::dynamic(out_rank); - - // implementation of out_shape formula - // data.shape[:batch_dims] + data.shape[batch_dims:axis] + indices.shape[batch_dims:] + - // data.shape[axis + 1:] - int i = 0; - for (; i < batch_dims; i++) { - NODE_VALIDATION_CHECK(this, - data_pshape[i].compatible(indices_pshape[i]), - "Shapes ", - data_pshape, - " and ", - indices_pshape, - " are not consistent. data and indices must have equal or " - "intersecting sizes until batch_dims"); - - output_pshape[i] = data_pshape[i] & indices_pshape[i]; - } - - if (axis_is_set) { - int64_t axis = get_axis(); - for (; i < axis; i++) { - output_pshape[i] = data_pshape[i]; - } - for (; i < axis + indices_rank.get_length() - batch_dims; i++) { - output_pshape[i] = indices_pshape[batch_dims - axis + i]; - } - for (; i < out_rank; i++) { - output_pshape[i] = data_pshape[batch_dims + 1 - indices_rank.get_length() + i]; - } - } - set_output_type(0, data_type, output_pshape); - } else { - Rank out_rank = data_rank + indices_rank - 1 - batch_dims; - if (batch_dims < 0) - out_rank = out_rank - indices_rank.get_max_length(); - set_output_type(0, data_type, PartialShape::dynamic(out_rank)); - } + std::vector input_shapes = {data_pshape, indices_pshape, axis_pshape}, + output_shapes = {PartialShape{}}; + shape_infer(this, input_shapes, output_shapes, {}); + set_output_type(0, data_type, output_shapes[0]); } int64_t ov::op::util::GatherBase::get_axis() const { @@ -143,6 +56,10 @@ int64_t ov::op::util::GatherBase::get_axis() const { return axis; } +const int64_t& ov::op::util::GatherBase::get_batch_dims() const { + return m_batch_dims; +} + namespace gather { namespace { template diff --git a/src/core/src/preprocess/pre_post_process.cpp b/src/core/src/preprocess/pre_post_process.cpp index db9395534e6..090708274d2 100644 --- a/src/core/src/preprocess/pre_post_process.cpp +++ b/src/core/src/preprocess/pre_post_process.cpp @@ -367,7 +367,8 @@ std::shared_ptr PrePostProcessor::build() { for (const auto& input_info : m_impl->m_inputs) { auto& input = input_info.m_impl; // Set parameter layout from 'model' information - if (input->get_model()->is_layout_set() && input->m_resolved_param->get_layout().empty()) { + if (input->get_model()->is_layout_set()) { + // Overwrite existing model's layout here (fix 74065) input->m_resolved_param->set_layout(input->get_model()->get_layout()); } } @@ -563,7 +564,8 @@ std::shared_ptr PrePostProcessor::build() { node.get_tensor().set_names({}); result = std::dynamic_pointer_cast(node.get_node_shared_ptr()); // Set result layout from 'model' information - if (output->get_model_data()->is_layout_set() && result->get_layout().empty()) { + if (output->get_model_data()->is_layout_set()) { + // Overwrite existing model's layout here (fix 74065) result->set_layout(output->get_model_data()->get_layout()); } auto parent = result->get_input_source_output(0); diff --git a/src/core/tests/frontend/frontend_manager.cpp b/src/core/tests/frontend/frontend_manager.cpp index 12c8748f35a..b4255de3085 100644 --- a/src/core/tests/frontend/frontend_manager.cpp +++ b/src/core/tests/frontend/frontend_manager.cpp @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include #include +#include +#include #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -66,8 +66,9 @@ static int set_test_env(const char* name, const char* value) { TEST(FrontEndManagerTest, testAvailableFrontEnds) { FrontEndManager fem; + class MockFrontEnd : public FrontEnd {}; ASSERT_NO_THROW(fem.register_front_end("mock", []() { - return std::make_shared(); + return std::make_shared(); })); auto frontends = fem.get_available_front_ends(); ASSERT_NE(std::find(frontends.begin(), frontends.end(), "mock"), frontends.end()); @@ -105,8 +106,9 @@ TEST(FrontEndManagerTest, testDefaultFrontEnd) { ASSERT_NO_THROW(fe = fem.load_by_model("")); ASSERT_FALSE(fe); - std::unique_ptr fePtr(new FrontEnd()); // to verify base destructor - fe = std::make_shared(); + class MockFrontEnd : public FrontEnd {}; + std::unique_ptr fePtr(new MockFrontEnd()); // to verify base destructor + fe = std::make_shared(); ASSERT_ANY_THROW(fe->load("")); ASSERT_ANY_THROW(fe->convert(std::shared_ptr(nullptr))); ASSERT_ANY_THROW(fe->convert(InputModel::Ptr(nullptr))); @@ -117,8 +119,9 @@ TEST(FrontEndManagerTest, testDefaultFrontEnd) { } TEST(FrontEndManagerTest, testDefaultInputModel) { - std::unique_ptr imPtr(new InputModel()); // to verify base destructor - InputModel::Ptr im = std::make_shared(); + class MockInputModel : public InputModel {}; + std::unique_ptr imPtr(new MockInputModel()); // to verify base destructor + InputModel::Ptr im = std::make_shared(); ASSERT_EQ(im->get_inputs(), std::vector{}); ASSERT_EQ(im->get_outputs(), std::vector{}); ASSERT_ANY_THROW(im->override_all_inputs({nullptr})); @@ -146,8 +149,9 @@ TEST(FrontEndManagerTest, testDefaultInputModel) { } TEST(FrontEndManagerTest, testDefaultPlace) { - std::unique_ptr placePtr(new Place()); // to verify base destructor - Place::Ptr place = std::make_shared(); + class MockPlace : public Place {}; + std::unique_ptr placePtr(new MockPlace()); // to verify base destructor + Place::Ptr place = std::make_shared(); ASSERT_ANY_THROW(place->get_names()); ASSERT_EQ(place->get_consuming_operations(), std::vector{}); ASSERT_EQ(place->get_consuming_operations(0), std::vector{}); diff --git a/src/core/tests/frontend/mock_frontend.cpp b/src/core/tests/frontend/mock_frontend.cpp index ad7a205f3a7..7d4e24290be 100644 --- a/src/core/tests/frontend/mock_frontend.cpp +++ b/src/core/tests/frontend/mock_frontend.cpp @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" // Defined if we are building the plugin DLL (instead of using it) #ifdef mock1_ov_frontend_EXPORTS diff --git a/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp b/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp index 940bb3e72f2..764e752ed06 100644 --- a/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp +++ b/src/core/tests/frontend/paddlepaddle/convert_unsupported.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include +#include +#include #include "common_test_utils/ngraph_test_utils.hpp" #include "paddle_utils.hpp" diff --git a/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp b/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp index 595181f3edc..6005ad3ffea 100644 --- a/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp +++ b/src/core/tests/frontend/paddlepaddle/incorrect_cut_model.cpp @@ -4,8 +4,8 @@ #include -#include -#include +#include +#include #include "paddle_utils.hpp" #include "utils.hpp" diff --git a/src/core/tests/frontend/paddlepaddle/places.cpp b/src/core/tests/frontend/paddlepaddle/places.cpp index 925fb068eae..2092920cbee 100644 --- a/src/core/tests/frontend/paddlepaddle/places.cpp +++ b/src/core/tests/frontend/paddlepaddle/places.cpp @@ -3,7 +3,7 @@ // #include -#include +#include #include "gtest/gtest.h" #include "paddle_utils.hpp" diff --git a/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py b/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py index 8c6b5fd1eeb..75328e48fca 100644 --- a/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py +++ b/src/core/tests/frontend/paddlepaddle/test_models/gen_scripts/generate_slice.py @@ -26,7 +26,7 @@ def slice(name : str, x, axes : list, start : list, end : list): outs = exe.run( feed={'x': x}, - fetch_list=[out]) + fetch_list=[out]) saveModel(name, exe, feedkeys=['x'], fetchlist=[out], inputs=[x], outputs=[outs[0]], target_dir=sys.argv[1]) diff --git a/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp b/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp index a67950514c6..88c8128baab 100644 --- a/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp +++ b/src/core/tests/frontend/paddlepaddle/throw_in_conversion.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include +#include +#include #include "common_test_utils/ngraph_test_utils.hpp" #include "paddle_utils.hpp" diff --git a/src/core/tests/frontend/shared/CMakeLists.txt b/src/core/tests/frontend/shared/CMakeLists.txt index 2c1cec6c213..ae4bcb5ac04 100644 --- a/src/core/tests/frontend/shared/CMakeLists.txt +++ b/src/core/tests/frontend/shared/CMakeLists.txt @@ -11,7 +11,7 @@ add_library(${TARGET_NAME} STATIC EXCLUDE_FROM_ALL ${LIBRARY_SRC} ${LIBRARY_HEAD target_include_directories(${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_include_directories(${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../..) -target_link_libraries(${TARGET_NAME} PUBLIC frontend_common interpreter_backend engines_test_util +target_link_libraries(${TARGET_NAME} PUBLIC frontend_common engines_test_util ngraph cnpy commonTestUtils ngraph_test_util openvino::util) target_compile_definitions(${TARGET_NAME} diff --git a/src/core/tests/frontend/shared/include/basic_api.hpp b/src/core/tests/frontend/shared/include/basic_api.hpp index 40c11081c33..045c302d908 100644 --- a/src/core/tests/frontend/shared/include/basic_api.hpp +++ b/src/core/tests/frontend/shared/include/basic_api.hpp @@ -6,7 +6,7 @@ #include -#include +#include using BasicTestParam = std::tuple -#include +#include using ConvertParam = std::tuple -#include +#include struct CutModelParam { std::string m_frontEndName; diff --git a/src/core/tests/frontend/shared/include/load_from.hpp b/src/core/tests/frontend/shared/include/load_from.hpp index 77d89a65e11..db037d27953 100644 --- a/src/core/tests/frontend/shared/include/load_from.hpp +++ b/src/core/tests/frontend/shared/include/load_from.hpp @@ -6,7 +6,7 @@ #include -#include +#include struct LoadFromFEParam { std::string m_frontEndName; diff --git a/src/core/tests/frontend/shared/include/op_fuzzy.hpp b/src/core/tests/frontend/shared/include/op_fuzzy.hpp index fae7726a266..0b29df5f901 100644 --- a/src/core/tests/frontend/shared/include/op_fuzzy.hpp +++ b/src/core/tests/frontend/shared/include/op_fuzzy.hpp @@ -6,7 +6,7 @@ #include -#include +#include using FuzzyOpTestParam = std::tuple -#include +#include struct BaseFEParam { BaseFEParam() {} diff --git a/src/core/tests/frontend/shared/include/set_element_type.hpp b/src/core/tests/frontend/shared/include/set_element_type.hpp index 3ae4fce68cf..7e345420d9d 100644 --- a/src/core/tests/frontend/shared/include/set_element_type.hpp +++ b/src/core/tests/frontend/shared/include/set_element_type.hpp @@ -6,7 +6,7 @@ #include -#include +#include struct SetTypeFEParam { std::string m_frontEndName; diff --git a/src/core/tests/frontend/shared/include/telemetry.hpp b/src/core/tests/frontend/shared/include/telemetry.hpp index 770967455f2..747af456b3d 100644 --- a/src/core/tests/frontend/shared/include/telemetry.hpp +++ b/src/core/tests/frontend/shared/include/telemetry.hpp @@ -6,7 +6,7 @@ #include -#include +#include class TelemetryMock { public: diff --git a/src/core/tests/frontend/shared/include/utils.hpp b/src/core/tests/frontend/shared/include/utils.hpp index 6c9c9d6072e..4a82ca1356d 100644 --- a/src/core/tests/frontend/shared/include/utils.hpp +++ b/src/core/tests/frontend/shared/include/utils.hpp @@ -5,7 +5,7 @@ #pragma once #include -#include +#include #include #include "common_test_utils/file_utils.hpp" diff --git a/src/core/tests/frontend/shared/src/telemetry.cpp b/src/core/tests/frontend/shared/src/telemetry.cpp index 088a3074b27..c96b05b990e 100644 --- a/src/core/tests/frontend/shared/src/telemetry.cpp +++ b/src/core/tests/frontend/shared/src/telemetry.cpp @@ -4,7 +4,7 @@ #include "telemetry.hpp" -#include +#include #include "utils.hpp" diff --git a/src/core/tests/frontend/tensorflow/convert_unsupported.cpp b/src/core/tests/frontend/tensorflow/convert_unsupported.cpp index 6374912e74d..391305ea0ed 100644 --- a/src/core/tests/frontend/tensorflow/convert_unsupported.cpp +++ b/src/core/tests/frontend/tensorflow/convert_unsupported.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include +#include +#include #include "common_test_utils/ngraph_test_utils.hpp" #include "tf_utils.hpp" diff --git a/src/core/tests/frontend/tensorflow/transpose_sinking.cpp b/src/core/tests/frontend/tensorflow/transpose_sinking.cpp index b1f08b28aa9..44f50d2c80b 100644 --- a/src/core/tests/frontend/tensorflow/transpose_sinking.cpp +++ b/src/core/tests/frontend/tensorflow/transpose_sinking.cpp @@ -5,7 +5,7 @@ #include "transpose_sinking.hpp" #include -#include +#include #include #include #include diff --git a/src/core/tests/models/onnx/softmax_axis_1_opset11.prototxt b/src/core/tests/models/onnx/softmax_axis_1_opset11.prototxt new file mode 100644 index 00000000000..947b381db0b --- /dev/null +++ b/src/core/tests/models/onnx/softmax_axis_1_opset11.prototxt @@ -0,0 +1,56 @@ +ir_version: 3 +producer_name: "nGraph ONNX Importer" +graph { + node { + input: "x" + output: "y" + op_type: "Softmax" + attribute { + name: "axis" + i: 1 + type: INT + } + } + name: "test_softmax_axis_1" + input { + name: "x" + type { + tensor_type { + elem_type: 1 + shape { + dim { + dim_value: 3 + } + dim { + dim_value: 4 + } + dim { + dim_value: 5 + } + } + } + } + } + output { + name: "y" + type { + tensor_type { + elem_type: 1 + shape { + dim { + dim_value: 3 + } + dim { + dim_value: 4 + } + dim { + dim_value: 5 + } + } + } + } + } +} +opset_import { + version: 11 +} diff --git a/src/core/tests/models/onnx/softmax_axis_negative_1_opset11.prototxt b/src/core/tests/models/onnx/softmax_axis_negative_1_opset11.prototxt new file mode 100644 index 00000000000..ad9a4b72603 --- /dev/null +++ b/src/core/tests/models/onnx/softmax_axis_negative_1_opset11.prototxt @@ -0,0 +1,56 @@ +ir_version: 3 +producer_name: "nGraph ONNX Importer" +graph { + node { + input: "x" + output: "y" + op_type: "Softmax" + attribute { + name: "axis" + i: -1 + type: INT + } + } + name: "test_softmax_axis_0" + input { + name: "x" + type { + tensor_type { + elem_type: 1 + shape { + dim { + dim_value: 3 + } + dim { + dim_value: 4 + } + dim { + dim_value: 5 + } + } + } + } + } + output { + name: "y" + type { + tensor_type { + elem_type: 1 + shape { + dim { + dim_value: 3 + } + dim { + dim_value: 4 + } + dim { + dim_value: 5 + } + } + } + } + } +} +opset_import { + version: 11 +} diff --git a/src/core/tests/models/onnx/softmax_axis_negative_1_opset13.prototxt b/src/core/tests/models/onnx/softmax_axis_negative_1_opset13.prototxt new file mode 100644 index 00000000000..aff3afc2c52 --- /dev/null +++ b/src/core/tests/models/onnx/softmax_axis_negative_1_opset13.prototxt @@ -0,0 +1,56 @@ +ir_version: 3 +producer_name: "nGraph ONNX Importer" +graph { + node { + input: "x" + output: "y" + op_type: "Softmax" + attribute { + name: "axis" + i: -1 + type: INT + } + } + name: "test_softmax_axis_0" + input { + name: "x" + type { + tensor_type { + elem_type: 1 + shape { + dim { + dim_value: 3 + } + dim { + dim_value: 4 + } + dim { + dim_value: 5 + } + } + } + } + } + output { + name: "y" + type { + tensor_type { + elem_type: 1 + shape { + dim { + dim_value: 3 + } + dim { + dim_value: 4 + } + dim { + dim_value: 5 + } + } + } + } + } +} +opset_import { + version: 13 +} diff --git a/src/core/tests/onnx/onnx_import.in.cpp b/src/core/tests/onnx/onnx_import.in.cpp index efac638d743..73f02233e0f 100644 --- a/src/core/tests/onnx/onnx_import.in.cpp +++ b/src/core/tests/onnx/onnx_import.in.cpp @@ -380,7 +380,7 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_model_initializer_wo_input) { test_case.run(); } -NGRAPH_TEST(onnx_${BACKEND_NAME}, onnx_expand_function) { +NGRAPH_TEST(${BACKEND_NAME}, onnx_expand_function) { const auto function = onnx_import::import_onnx_model( file_util::path_join(SERIALIZED_ZOO, "onnx/quantization/dynamicquantizelinear.onnx")); @@ -392,7 +392,7 @@ NGRAPH_TEST(onnx_${BACKEND_NAME}, onnx_expand_function) { test_case.run(); } -NGRAPH_TEST(onnx_${BACKEND_NAME}, onnx_expand_function_dependency_to_created_subgraph) { +NGRAPH_TEST(${BACKEND_NAME}, onnx_expand_function_dependency_to_created_subgraph) { const auto function = onnx_import::import_onnx_model( file_util::path_join(SERIALIZED_ZOO, "onnx/transformations/greater_or_equal.onnx")); @@ -403,7 +403,7 @@ NGRAPH_TEST(onnx_${BACKEND_NAME}, onnx_expand_function_dependency_to_created_sub test_case.run(); } -NGRAPH_TEST(onnx_${BACKEND_NAME}, onnx_expand_context_dependent_function) { +NGRAPH_TEST(${BACKEND_NAME}, onnx_expand_context_dependent_function) { auto function = onnx_import::import_onnx_model( file_util::path_join(SERIALIZED_ZOO, "onnx/transformations/softmax_crossentropy_consumed.onnx")); @@ -690,19 +690,24 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_1D) { } namespace { // common input for all Softmax 3D test cases (Shape = {3,4,5}) +// clang-format off const std::vector SOFTMAX_INPUT = { - 2.75793882, -0.50841322, 0.82013929, -0.62409912, -0.96136118, 0.21004745, 1.38337255, - 1.19030397, 2.0940445, -0.03551657, -0.78686039, 1.992782, 0.04300319, -0.29230777, - -0.56797112, -1.26732165, -0.61935399, 0.57670432, 0.92844898, 2.82469233, + 2.75793882, -0.50841322, 0.82013929, -0.62409912, -0.96136118, + 0.21004745, 1.38337255, 1.19030397, 2.0940445, -0.03551657, + -0.78686039, 1.992782, 0.04300319, -0.29230777, -0.56797112, + -1.26732165, -0.61935399, 0.57670432, 0.92844898, 2.82469233, - 0.98721677, -0.05100663, -1.21178917, -0.17530157, 1.40051805, -0.13259761, -1.14313018, - 0.2673723, -0.87996154, 1.29053106, 1.55, 0.8396538, 1.20729817, 0.23727845, - -0.89113606, -1.70909842, 0.26460363, -0.70566808, 2.383518, 1.07024615, + 0.98721677, -0.05100663, -1.21178917, -0.17530157, 1.40051805, + -0.13259761, -1.14313018, 0.2673723, -0.87996154, 1.29053106, + 1.55, 0.8396538, 1.20729817, 0.23727845, -0.89113606, + -1.70909842, 0.26460363, -0.70566808, 2.383518, 1.07024615, - -1.21722605, 0.82919357, 0.55765697, 0.12657686, 0.63432172, 0.75425957, -2.43721014, - -1.24478184, 2.65316853, 1.19509542, -0.95523998, 0.5149006, -0.01151649, 0.68327026, - -0.4589638, -0.46554745, 0.21055324, 0.39266729, 2.05098086, 1.83207919}; + -1.21722605, 0.82919357, 0.55765697, 0.12657686, 0.63432172, + 0.75425957, -2.43721014, -1.24478184, 2.65316853, 1.19509542, + -0.95523998, 0.5149006, -0.01151649, 0.68327026, -0.4589638, + -0.46554745, 0.21055324, 0.39266729, 2.05098086, 1.83207919}; } // namespace +// clang-format on NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_axis_0) { auto function = onnx_import::import_onnx_model(file_util::path_join(SERIALIZED_ZOO, "onnx/softmax_axis_0.onnx")); @@ -710,19 +715,24 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_axis_0) { auto test_case = test::TestCase(function, s_device); test_case.add_input(SOFTMAX_INPUT); + // clang-format off test_case.add_expected_output( Shape{3, 4, 5}, - {0.09683057, 0.00369363, 0.01394559, 0.00329012, 0.00234823, 0.00757665, 0.02449322, - 0.02019284, 0.04985249, 0.00592694, 0.00279593, 0.04505148, 0.00641108, 0.00458466, - 0.00348007, 0.00172928, 0.00330577, 0.01093237, 0.01554086, 0.10351497, + {0.09683057, 0.00369363, 0.01394559, 0.00329012, 0.00234823, + 0.00757665, 0.02449322, 0.02019284, 0.04985249, 0.00592694, + 0.00279593, 0.04505148, 0.00641108, 0.00458466, 0.00348007, + 0.00172928, 0.00330577, 0.01093237, 0.01554086, 0.10351497, - 0.01648154, 0.00583583, 0.00182802, 0.00515374, 0.02491679, 0.00537859, 0.00195794, - 0.00802367, 0.00254737, 0.0223216, 0.02893419, 0.0142204, 0.02053893, 0.00778581, - 0.00251907, 0.00111174, 0.00800149, 0.0030324, 0.06658917, 0.0179084, + 0.01648154, 0.00583583, 0.00182802, 0.00515374, 0.02491679, + 0.00537859, 0.00195794, 0.00802367, 0.00254737, 0.0223216, + 0.02893419, 0.0142204, 0.02053893, 0.00778581, 0.00251907, + 0.00111174, 0.00800149, 0.0030324, 0.06658917, 0.0179084, - 0.00181811, 0.01407243, 0.01072611, 0.0069699, 0.01158077, 0.01305647, 0.00053677, - 0.0017687, 0.08719896, 0.02028982, 0.00236265, 0.01027717, 0.0060709, 0.01216173, - 0.00388087, 0.00385541, 0.00758048, 0.00909469, 0.04775123, 0.03836337}); + 0.00181811, 0.01407243, 0.01072611, 0.0069699, 0.01158077, + 0.01305647, 0.00053677, 0.0017687, 0.08719896, 0.02028982, + 0.00236265, 0.01027717, 0.0060709, 0.01216173, 0.00388087, + 0.00385541, 0.00758048, 0.00909469, 0.04775123, 0.03836337}); + // clang-format on test_case.run(6); } @@ -733,35 +743,113 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_axis_1) { auto test_case = test::TestCase(function, s_device); test_case.add_input(SOFTMAX_INPUT); + // clang-format off test_case.add_expected_output( Shape{3, 4, 5}, - {0.22757064, 0.00868076, 0.03277484, 0.00773243, 0.0055188, 0.0178066, 0.05756383, - 0.04745709, 0.11716303, 0.01392945, 0.00657097, 0.10587974, 0.01506727, 0.01077484, - 0.00817884, 0.00406413, 0.00776921, 0.0256932, 0.03652405, 0.24328028, + {0.22757064, 0.00868076, 0.03277484, 0.00773243, 0.0055188, + 0.0178066, 0.05756383, 0.04745709, 0.11716303, 0.01392945, + 0.00657097, 0.10587974, 0.01506727, 0.01077484, 0.00817884, + 0.00406413, 0.00776921, 0.0256932, 0.03652405, 0.24328028, - 0.06217413, 0.02201481, 0.00689594, 0.01944171, 0.09399488, 0.02028993, 0.00738604, - 0.03026811, 0.00960958, 0.08420492, 0.10914991, 0.05364435, 0.07748005, 0.02937079, - 0.0095028, 0.00419387, 0.03018442, 0.01143929, 0.2511977, 0.06755678, + 0.06217413, 0.02201481, 0.00689594, 0.01944171, 0.09399488, + 0.02028993, 0.00738604, 0.03026811, 0.00960958, 0.08420492, + 0.10914991, 0.05364435, 0.07748005, 0.02937079, 0.0095028, + 0.00419387, 0.03018442, 0.01143929, 0.2511977, 0.06755678, - 0.00587593, 0.04548053, 0.0346656, 0.02252594, 0.03742775, 0.04219705, 0.00173478, - 0.00571623, 0.2818174, 0.06557446, 0.00763582, 0.03321466, 0.01962049, 0.03930537, - 0.01254255, 0.01246025, 0.02449929, 0.02939305, 0.15432668, 0.12398617}); + 0.00587593, 0.04548053, 0.0346656, 0.02252594, 0.03742775, + 0.04219705, 0.00173478, 0.00571623, 0.2818174, 0.06557446, + 0.00763582, 0.03321466, 0.01962049, 0.03930537, 0.01254255, + 0.01246025, 0.02449929, 0.02939305, 0.15432668, 0.12398617}); + // clang-format on test_case.run(4); } -NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_invalid_axis_1D) { - ASSERT_THROW( - onnx_import::import_onnx_model(file_util::path_join(SERIALIZED_ZOO, "onnx/softmax_invalid_axis_1D.onnx")), - ngraph::ngraph_error) - << "Softmax model with invalid axis was successfully imported while it should have thrown."; +NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_axis_1_opset11) { + auto function = + onnx_import::import_onnx_model(file_util::path_join(SERIALIZED_ZOO, "onnx/softmax_axis_1_opset11.onnx")); + + auto test_case = test::TestCase(function, s_device); + test_case.add_input(SOFTMAX_INPUT); + + // clang-format off + test_case.add_expected_output( + Shape{3, 4, 5}, + {0.88890495, 0.04825497, 0.27088348, 0.04490523, 0.02037154, + 0.06955369, 0.31998834, 0.39223197, 0.68041159, 0.05141776, + 0.02566661, 0.5885689, 0.12453075, 0.06257374, 0.03019055, + 0.01587475, 0.0431878, 0.21235381, 0.21210944, 0.89802015, + + 0.31752626, 0.19442629, 0.0546935, 0.06279221, 0.36823282, + 0.10362164, 0.06523066, 0.24006419, 0.03103672, 0.32987983, + 0.55743381, 0.473766, 0.61451431, 0.09486084, 0.03722801, + 0.02141829, 0.26657706, 0.090728, 0.81131024, 0.26465935, + + 0.08619648, 0.43343993, 0.3877785, 0.04523505, 0.15625437, + 0.61900597, 0.01653285, 0.06394322, 0.56592636, 0.27376196, + 0.11201305, 0.31654337, 0.21947994, 0.07893034, 0.05236297, + 0.18278451, 0.23348385, 0.32879834, 0.30990825, 0.5176207}); + // clang-format on + + test_case.run(4); } -NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_invalid_axis_3D) { - ASSERT_THROW( - onnx_import::import_onnx_model(file_util::path_join(SERIALIZED_ZOO, "onnx/softmax_invalid_axis_3D.onnx")), - ngraph::ngraph_error) - << "Softmax model with invalid axis was successfully imported while it should have thrown."; +NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_axis_negative_1_opset11) { + auto function = onnx_import::import_onnx_model( + file_util::path_join(SERIALIZED_ZOO, "onnx/softmax_axis_negative_1_opset11.onnx")); + + auto test_case = test::TestCase(function); + test_case.add_input(SOFTMAX_INPUT); + + // clang-format off + test_case.add_expected_output( + Shape{3, 4, 5}, + {0.88890495, 0.04825497, 0.27088348, 0.04490523, 0.02037154, + 0.06955369, 0.31998834, 0.39223197, 0.68041159, 0.05141776, + 0.02566661, 0.5885689, 0.12453075, 0.06257374, 0.03019055, + 0.01587475, 0.0431878, 0.21235381, 0.21210944, 0.89802015, + + 0.31752626, 0.19442629, 0.0546935, 0.06279221, 0.36823282, + 0.10362164, 0.06523066, 0.24006419, 0.03103672, 0.32987983, + 0.55743381, 0.473766, 0.61451431, 0.09486084, 0.03722801, + 0.02141829, 0.26657706, 0.090728, 0.81131024, 0.26465935, + + 0.08619648, 0.43343993, 0.3877785, 0.04523505, 0.15625437, + 0.61900597, 0.01653285, 0.06394322, 0.56592636, 0.27376196, + 0.11201305, 0.31654337, 0.21947994, 0.07893034, 0.05236297, + 0.18278451, 0.23348385, 0.32879834, 0.30990825, 0.5176207}); + // clang-format on + + test_case.run(6); +} + +NGRAPH_TEST(${BACKEND_NAME}, onnx_model_softmax_axis_negative_1_opset13) { + auto function = onnx_import::import_onnx_model( + file_util::path_join(SERIALIZED_ZOO, "onnx/softmax_axis_negative_1_opset13.onnx")); + + auto test_case = test::TestCase(function); + test_case.add_input(SOFTMAX_INPUT); + + // clang-format off + test_case.add_expected_output( + Shape{3, 4, 5}, + {0.88890495, 0.04825497, 0.27088348, 0.04490523, 0.02037154, + 0.06955369, 0.31998834, 0.39223197, 0.68041159, 0.05141776, + 0.02566661, 0.5885689, 0.12453075, 0.06257374, 0.03019055, + 0.01587475, 0.0431878, 0.21235381, 0.21210944, 0.89802015, + + 0.31752626, 0.19442629, 0.0546935, 0.06279221, 0.36823282, + 0.10362164, 0.06523066, 0.24006419, 0.03103672, 0.32987983, + 0.55743381, 0.473766, 0.61451431, 0.09486084, 0.03722801, + 0.02141829, 0.26657706, 0.090728, 0.81131024, 0.26465935, + + 0.08619648, 0.43343993, 0.3877785, 0.04523505, 0.15625437, + 0.61900597, 0.01653285, 0.06394322, 0.56592636, 0.27376196, + 0.11201305, 0.31654337, 0.21947994, 0.07893034, 0.05236297, + 0.18278451, 0.23348385, 0.32879834, 0.30990825, 0.5176207}); + // clang-format on + + test_case.run(6); } NGRAPH_TEST(${BACKEND_NAME}, onnx_model_sub) { diff --git a/src/core/tests/pass/serialization/read_ir.hpp b/src/core/tests/pass/serialization/read_ir.hpp index 31a81999d84..e763c93ebc8 100644 --- a/src/core/tests/pass/serialization/read_ir.hpp +++ b/src/core/tests/pass/serialization/read_ir.hpp @@ -4,7 +4,7 @@ #pragma once -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "openvino/core/except.hpp" #include "openvino/core/model.hpp" diff --git a/src/core/tests/preprocess.cpp b/src/core/tests/preprocess.cpp index 856dd597dce..532f1427de7 100644 --- a/src/core/tests/preprocess.cpp +++ b/src/core/tests/preprocess.cpp @@ -534,6 +534,23 @@ TEST(pre_post_process, reuse_model_layout_no_tensor_info) { EXPECT_EQ(f->get_parameters().front()->get_layout(), "NC??"); } +TEST(pre_post_process, set_model_layout_when_already_exists) { + auto m = create_simple_function(element::f32, PartialShape{Dimension::dynamic(), 3, 2, 1}); + { + auto p = PrePostProcessor(m); + p.input().model().set_layout("N???"); + m = p.build(); + } + EXPECT_EQ(m->input().get_partial_shape(), (PartialShape{Dimension::dynamic(), 3, 2, 1})); + { + auto p = PrePostProcessor(m); + p.input().tensor().set_layout("NHWC"); + p.input().model().set_layout("NCHW"); // Expect "N???" will be overwritten by "NCHW" + m = p.build(); + } + EXPECT_EQ(m->input().get_partial_shape(), (PartialShape{Dimension::dynamic(), 2, 1, 3})); +} + TEST(pre_post_process, set_layout_out_of_bounds) { auto shape = PartialShape{1, 2}; std::stringstream shape_str; @@ -1146,6 +1163,23 @@ TEST(pre_post_process, postprocess_convert_layout_implicit) { EXPECT_EQ(f->get_results()[0]->get_output_tensor(0).get_partial_shape(), (PartialShape{1, 2, 2, 3})); } +TEST(pre_post_process, postprocess_set_model_layout_when_already_exists) { + auto m = create_simple_function(element::f32, PartialShape{Dimension::dynamic(), 3, 2, 1}); + { + auto p = PrePostProcessor(m); + p.output().model().set_layout("N???"); + m = p.build(); + } + EXPECT_EQ(m->output().get_partial_shape(), (PartialShape{Dimension::dynamic(), 3, 2, 1})); + { + auto p = PrePostProcessor(m); + p.output().model().set_layout("NCHW"); // Expect "N???" will be overwritten by "NCHW" + p.output().tensor().set_layout("NHWC"); + m = p.build(); + } + EXPECT_EQ(m->output().get_partial_shape(), (PartialShape{Dimension::dynamic(), 2, 1, 3})); +} + TEST(pre_post_process, postprocess_convert_layout_explicit_no_target) { auto f = create_n_inputs<2>(element::f32, Shape{1, 3, 2, 2}); auto p = PrePostProcessor(f); diff --git a/src/core/tests/type_prop/gather.cpp b/src/core/tests/type_prop/gather.cpp index 304f84376ae..42cb5ae1a96 100644 --- a/src/core/tests/type_prop/gather.cpp +++ b/src/core/tests/type_prop/gather.cpp @@ -94,9 +94,8 @@ TEST(type_prop, gather_v1_axis_out_of_input_rank) { auto G = make_shared(params, indices, axis); // Should have thrown, so fail if it didn't FAIL() << "Incorrect element of axis input"; - } catch (const NodeValidationFailure& error) { - EXPECT_HAS_SUBSTRING(error.what(), - std::string("Normalized axis must be >= 0 and < data_rank. But instead got axis")); + } catch (const ov::AssertFailure& error) { + EXPECT_HAS_SUBSTRING(error.what(), std::string("out of the tensor rank range")); } catch (...) { FAIL() << "Deduced type check failed for unexpected reason"; } @@ -329,9 +328,8 @@ TEST(type_prop, gather_7_axis_out_of_input_rank) { auto G = make_shared(D, I, A, batch_dims); // Should have thrown, so fail if it didn't FAIL() << "axis check failed"; - } catch (const NodeValidationFailure& error) { - EXPECT_HAS_SUBSTRING(error.what(), - std::string("Normalized axis must be >= 0 and < data_rank. But instead got")); + } catch (const ov::AssertFailure& error) { + EXPECT_HAS_SUBSTRING(error.what(), std::string("out of the tensor rank range")); } catch (...) { FAIL() << "Deduced type check failed for unexpected reason"; } @@ -663,9 +661,8 @@ TEST(type_prop, gather_v8_axis_out_of_input_rank) { auto G = make_shared(D, I, A, batch_dims); // Should have thrown, so fail if it didn't FAIL() << "axis check failed"; - } catch (const NodeValidationFailure& error) { - EXPECT_HAS_SUBSTRING(error.what(), - std::string("Normalized axis must be >= 0 and < data_rank. But instead got")); + } catch (const ov::AssertFailure& error) { + EXPECT_HAS_SUBSTRING(error.what(), std::string("out of the tensor rank range")); } catch (...) { FAIL() << "Deduced type check failed for unexpected reason"; } diff --git a/src/core/tests/type_prop/gather_elements.cpp b/src/core/tests/type_prop/gather_elements.cpp index 8feb7439140..96e09f4ec0c 100644 --- a/src/core/tests/type_prop/gather_elements.cpp +++ b/src/core/tests/type_prop/gather_elements.cpp @@ -173,8 +173,8 @@ TEST(type_prop, gather_elements_out_of_bounds_axis) { auto GE = make_shared(D, I, axis); // Should have thrown, so fail if it didn't FAIL() << "axis out of bounds check failed"; - } catch (const NodeValidationFailure& error) { - EXPECT_HAS_SUBSTRING(error.what(), std::string("axis must be within interval")); + } catch (const ov::AssertFailure& error) { + EXPECT_HAS_SUBSTRING(error.what(), std::string("out of the tensor rank range")); } catch (...) { FAIL() << "axis out of bounds check failed for unexpected reason"; } diff --git a/src/frontends/CMakeLists.txt b/src/frontends/CMakeLists.txt index 8f1830bf5a9..3671fb39192 100644 --- a/src/frontends/CMakeLists.txt +++ b/src/frontends/CMakeLists.txt @@ -2,6 +2,10 @@ # SPDX-License-Identifier: Apache-2.0 # +if(ENABLE_LTO) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) +endif() + add_subdirectory(common) if(ENABLE_OV_ONNX_FRONTEND) diff --git a/src/frontends/common/CMakeLists.txt b/src/frontends/common/CMakeLists.txt index 869db527261..3750dc92e92 100644 --- a/src/frontends/common/CMakeLists.txt +++ b/src/frontends/common/CMakeLists.txt @@ -13,7 +13,7 @@ file(GLOB_RECURSE LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp) file(GLOB_RECURSE LIBRARY_PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp) # Add include path to so_extension.hpp -set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/frontend_manager.cpp +set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/frontend.cpp APPEND PROPERTY INCLUDE_DIRECTORIES "${OpenVINO_SOURCE_DIR}/src/core/src/") set(FRONTEND_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) @@ -25,7 +25,6 @@ source_group("public include" FILES ${LIBRARY_PUBLIC_HEADERS}) # create library add_library(${TARGET_NAME} ${LIBRARY_SRC} ${LIBRARY_HEADERS} ${LIBRARY_PUBLIC_HEADERS}) -add_library(ngraph::${TARGET_NAME} ALIAS ${TARGET_NAME}) add_library(openvino::frontend::common ALIAS ${TARGET_NAME}) target_include_directories(${TARGET_NAME} @@ -37,10 +36,10 @@ target_include_directories(${TARGET_NAME} "${CMAKE_CURRENT_BINARY_DIR}/src") target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) -target_link_libraries(${TARGET_NAME} PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC ngraph) +target_link_libraries(${TARGET_NAME} PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC openvino::core) set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/plugin_loader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/frontend_manager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/manager.cpp APPEND PROPERTY COMPILE_DEFINITIONS FRONTEND_LIB_PREFIX="${CMAKE_SHARED_LIBRARY_PREFIX}" FRONTEND_LIB_SUFFIX="${FRONTEND_NAME_SUFFIX}${IE_BUILD_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}") @@ -48,9 +47,7 @@ set_property(SOURCE add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME}) ov_ncc_naming_style(FOR_TARGET ${TARGET_NAME} - INCLUDE_DIRECTORY "${FRONTEND_INCLUDE_DIR}" - ADDITIONAL_INCLUDE_DIRECTORIES - $) + INCLUDE_DIRECTORY "${FRONTEND_INCLUDE_DIR}") ie_add_vs_version_file(NAME ${TARGET_NAME} FILEDESCRIPTION "Manager of OpenVINO Frontends") @@ -61,7 +58,7 @@ ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME}) if(BUILD_SHARED_LIBS) add_library(${TARGET_NAME}_static STATIC ${LIBRARY_SRC} ${LIBRARY_HEADERS} ${LIBRARY_PUBLIC_HEADERS}) add_library(${TARGET_NAME}::static ALIAS ${TARGET_NAME}_static) - target_link_libraries(${TARGET_NAME}_static PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC ngraph) + target_link_libraries(${TARGET_NAME}_static PRIVATE ${CMAKE_DL_LIBS} openvino::util PUBLIC openvino::core) target_include_directories(${TARGET_NAME}_static PUBLIC $) target_include_directories(${TARGET_NAME}_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) @@ -82,15 +79,9 @@ install(TARGETS ${TARGET_NAME} EXPORT OpenVINOTargets ARCHIVE DESTINATION ${IE_CPACK_ARCHIVE_PATH} COMPONENT core LIBRARY DESTINATION ${IE_CPACK_LIBRARY_PATH} COMPONENT core) -install(DIRECTORY ${FRONTEND_INCLUDE_DIR}/common +install(DIRECTORY ${FRONTEND_INCLUDE_DIR}/openvino DESTINATION ${FRONTEND_INSTALL_INCLUDE} - COMPONENT core_dev - FILES_MATCHING PATTERN "*.hpp") - -install(DIRECTORY ${FRONTEND_INCLUDE_DIR}/ - DESTINATION ${FRONTEND_INSTALL_INCLUDE} - COMPONENT core_dev - FILES_MATCHING PATTERN "manager.hpp") + COMPONENT core_dev) export(TARGETS ${TARGET_NAME} NAMESPACE openvino:: APPEND FILE "${CMAKE_BINARY_DIR}/OpenVINOTargets.cmake") diff --git a/src/frontends/common/include/common/frontend_exceptions.hpp b/src/frontends/common/include/openvino/frontend/exception.hpp similarity index 99% rename from src/frontends/common/include/common/frontend_exceptions.hpp rename to src/frontends/common/include/openvino/frontend/exception.hpp index 67dfe85d4f1..71d14238d81 100644 --- a/src/frontends/common/include/common/frontend_exceptions.hpp +++ b/src/frontends/common/include/openvino/frontend/exception.hpp @@ -7,8 +7,8 @@ #include #include -#include "frontend_defs.hpp" #include "openvino/core/except.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/common/include/common/frontend.hpp b/src/frontends/common/include/openvino/frontend/frontend.hpp similarity index 86% rename from src/frontends/common/include/common/frontend.hpp rename to src/frontends/common/include/openvino/frontend/frontend.hpp index 1ba63e6f593..13b30254a39 100644 --- a/src/frontends/common/include/common/frontend.hpp +++ b/src/frontends/common/include/openvino/frontend/frontend.hpp @@ -8,12 +8,12 @@ #include #include -#include "frontend_defs.hpp" #include "input_model.hpp" #include "openvino/core/any.hpp" #include "openvino/core/extension.hpp" #include "openvino/core/model.hpp" #include "openvino/core/op_extension.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { @@ -25,7 +25,7 @@ public: FrontEnd(); - virtual ~FrontEnd(); + virtual ~FrontEnd() = 0; /// \brief Validates if FrontEnd can recognize model with parameters specified. /// Same parameters should be used to load model. @@ -55,34 +55,34 @@ public: return load_impl(vars); } - /// \brief Completely convert and normalize entire function, throws if it is not + /// \brief Completely convert and normalize entire Model, throws if it is not /// possible /// \param model Input model - /// \return fully converted nGraph function + /// \return fully converted OV Model virtual std::shared_ptr convert(InputModel::Ptr model) const; - /// \brief Completely convert the remaining, not converted part of a function. - /// \param partiallyConverted partially converted nGraph function + /// \brief Completely convert the remaining, not converted part of a Model. + /// \param partiallyConverted partially converted OV Model virtual void convert(std::shared_ptr partially_converted) const; /// \brief Convert only those parts of the model that can be converted leaving others /// as-is. Converted parts are not normalized by additional transformations; normalize - /// function or another form of convert function should be called to finalize the + /// Model or another form of convert Model should be called to finalize the /// conversion process. /// \param model Input model - /// \return partially converted nGraph function + /// \return partially converted OV Model virtual std::shared_ptr convert_partially(InputModel::Ptr model) const; /// \brief Convert operations with one-to-one mapping with decoding nodes. - /// Each decoding node is an nGraph node representing a single FW operation node with + /// Each decoding node is an OV node representing a single FW operation node with /// all attributes represented in FW-independent way. /// \param model Input model - /// \return nGraph function after decoding + /// \return OV Model after decoding virtual std::shared_ptr decode(InputModel::Ptr model) const; - /// \brief Runs normalization passes on function that was loaded with partial conversion - /// \param function partially converted nGraph function - virtual void normalize(std::shared_ptr function) const; + /// \brief Runs normalization passes on Model that was loaded with partial conversion + /// \param Model partially converted OV Model + virtual void normalize(std::shared_ptr model) const; /// \brief Gets name of this FrontEnd. Can be used by clients /// if frontend is selected automatically by FrontEndManager::load_by_model diff --git a/src/frontends/common/include/common/input_model.hpp b/src/frontends/common/include/openvino/frontend/input_model.hpp similarity index 97% rename from src/frontends/common/include/common/input_model.hpp rename to src/frontends/common/include/openvino/frontend/input_model.hpp index 1642e3b10f2..c8327b0252c 100644 --- a/src/frontends/common/include/common/input_model.hpp +++ b/src/frontends/common/include/openvino/frontend/input_model.hpp @@ -8,10 +8,10 @@ #include #include -#include "frontend_defs.hpp" #include "openvino/core/partial_shape.hpp" #include "openvino/core/type/element_type.hpp" #include "place.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { @@ -22,7 +22,7 @@ namespace frontend { /// \note Class methods are divided into several groups: searching for places, naming and /// annotation, topology editing, setting tensor properties. /// -/// Editing requests may affect ability to convert the original model to nGraph function. +/// Editing requests may affect ability to convert the original model to OV Model. /// Aim to provide these editing capabilities is to unlock conversion for models that /// are not natively supported "as-is" because of undefined shapes, types or operations. /// @@ -39,7 +39,7 @@ class FRONTEND_API InputModel { public: typedef std::shared_ptr Ptr; - virtual ~InputModel() = default; + virtual ~InputModel() = 0; ///// Searching for places ///// @@ -169,8 +169,8 @@ public: /// \brief Defines all possible shape that may be used for this place; place should be /// uniquely refer to some data. This partial shape will be converted to corresponding - /// shape of results ngraph nodes and will define shape inference when the model is - /// converted to ngraph. + /// shape of results OV nodes and will define shape inference when the model is + /// converted to OV. /// \param place Model place /// \param shape Partial shape for this place virtual void set_partial_shape(Place::Ptr place, const ov::PartialShape& shape); diff --git a/src/frontends/common/include/manager.hpp b/src/frontends/common/include/openvino/frontend/manager.hpp similarity index 94% rename from src/frontends/common/include/manager.hpp rename to src/frontends/common/include/openvino/frontend/manager.hpp index b79fc89ba2c..af6a3778aac 100644 --- a/src/frontends/common/include/manager.hpp +++ b/src/frontends/common/include/openvino/frontend/manager.hpp @@ -8,9 +8,9 @@ #include #include -#include "common/frontend.hpp" -#include "common/frontend_defs.hpp" #include "openvino/core/any.hpp" +#include "openvino/frontend/frontend.hpp" +#include "openvino/frontend/visibility.hpp" namespace ov { namespace frontend { @@ -22,8 +22,7 @@ using FrontEndFactory = std::function; /// frontends This is a main frontend entry point for client applications class FRONTEND_API FrontEndManager final { public: - /// \brief Default constructor. Searches and loads of available frontends - FrontEndManager(); + /*/ \brief Default constructor. Searches and loads of available frontends*/ FrontEndManager(); /// \brief Default move constructor FrontEndManager(FrontEndManager&&) noexcept; diff --git a/src/frontends/common/include/common/place.hpp b/src/frontends/common/include/openvino/frontend/place.hpp similarity index 99% rename from src/frontends/common/include/common/place.hpp rename to src/frontends/common/include/openvino/frontend/place.hpp index f5c00263764..7fdab781996 100644 --- a/src/frontends/common/include/common/place.hpp +++ b/src/frontends/common/include/openvino/frontend/place.hpp @@ -8,7 +8,7 @@ #include #include -#include "frontend_defs.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { @@ -61,7 +61,7 @@ class FRONTEND_API Place { public: typedef std::shared_ptr Ptr; - virtual ~Place() = default; + virtual ~Place() = 0; /// \brief All associated names (synonyms) that identify this place in the graph in a /// framework specific way diff --git a/src/frontends/common/include/common/telemetry_extension.hpp b/src/frontends/common/include/openvino/frontend/telemetry_extension.hpp similarity index 97% rename from src/frontends/common/include/common/telemetry_extension.hpp rename to src/frontends/common/include/openvino/frontend/telemetry_extension.hpp index 914ad41c4bb..b1454414b3e 100644 --- a/src/frontends/common/include/common/telemetry_extension.hpp +++ b/src/frontends/common/include/openvino/frontend/telemetry_extension.hpp @@ -8,11 +8,11 @@ #include #include -#include "frontend_defs.hpp" #include "openvino/core/extension.hpp" #include "openvino/pass/graph_rewrite.hpp" #include "openvino/pass/manager.hpp" #include "openvino/pass/pass.hpp" +#include "visibility.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/common/include/common/frontend_defs.hpp b/src/frontends/common/include/openvino/frontend/visibility.hpp similarity index 68% rename from src/frontends/common/include/common/frontend_defs.hpp rename to src/frontends/common/include/openvino/frontend/visibility.hpp index 23d2fa86998..b578a596673 100644 --- a/src/frontends/common/include/common/frontend_defs.hpp +++ b/src/frontends/common/include/openvino/frontend/visibility.hpp @@ -11,11 +11,14 @@ #if defined(USE_STATIC_FRONTEND_COMMON) || defined(OPENVINO_STATIC_LIBRARY) # define FRONTEND_API +# define FRONTEND_C_API #else // Defined if cmake is building the frontend_common DLL (instead of using it) # ifdef frontend_common_EXPORTS -# define FRONTEND_API OPENVINO_CORE_EXPORTS +# define FRONTEND_API OPENVINO_CORE_EXPORTS +# define FRONTEND_C_API OPENVINO_EXTERN_C OPENVINO_CORE_EXPORTS # else -# define FRONTEND_API OPENVINO_CORE_IMPORTS +# define FRONTEND_API OPENVINO_CORE_IMPORTS +# define FRONTEND_C_API OPENVINO_EXTERN_C OPENVINO_CORE_IMPORTS # endif // frontend_common_EXPORTS #endif // USE_STATIC_FRONTEND_COMMON || OPENVINO_STATIC_LIBRARY diff --git a/src/frontends/common/src/frontend.cpp b/src/frontends/common/src/frontend.cpp new file mode 100644 index 00000000000..2ab96691ee9 --- /dev/null +++ b/src/frontends/common/src/frontend.cpp @@ -0,0 +1,72 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include + +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/place.hpp" +#include "openvino/util/env_util.hpp" +#include "plugin_loader.hpp" +#include "so_extension.hpp" +#include "utils.hpp" + +using namespace ov; +using namespace ov::frontend; + +FrontEnd::FrontEnd() = default; + +FrontEnd::~FrontEnd() = default; + +bool FrontEnd::supported_impl(const std::vector& variants) const { + return false; +} + +InputModel::Ptr FrontEnd::load_impl(const std::vector& params) const { + FRONT_END_NOT_IMPLEMENTED(load_impl); +} +std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { + FRONT_END_NOT_IMPLEMENTED(convert); +} + +void FrontEnd::convert(std::shared_ptr) const { + FRONT_END_NOT_IMPLEMENTED(convert); +} + +std::shared_ptr FrontEnd::convert_partially(InputModel::Ptr model) const { + FRONT_END_NOT_IMPLEMENTED(convert_partially); +} + +std::shared_ptr FrontEnd::decode(InputModel::Ptr model) const { + FRONT_END_NOT_IMPLEMENTED(decode); +} + +void FrontEnd::normalize(std::shared_ptr model) const { + FRONT_END_NOT_IMPLEMENTED(normalize); +} + +void FrontEnd::add_extension(const std::shared_ptr& extension) { + // Left unimplemented intentionally. + // Each frontend can support own set of extensions, so this method should be implemented on the frontend side +} + +void FrontEnd::add_extension(const std::vector>& extensions) { + for (const auto& ext : extensions) + add_extension(ext); +} + +void FrontEnd::add_extension(const std::string& library_path) { + add_extension(ov::detail::load_extensions(library_path)); +} + +#ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT +void FrontEnd::add_extension(const std::wstring& library_path) { + add_extension(ov::detail::load_extensions(library_path)); +} +#endif + +std::string FrontEnd::get_name() const { + return std::string(); +} diff --git a/src/frontends/common/src/input_model.cpp b/src/frontends/common/src/input_model.cpp new file mode 100644 index 00000000000..9c1cc7a3629 --- /dev/null +++ b/src/frontends/common/src/input_model.cpp @@ -0,0 +1,114 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/place.hpp" +#include "utils.hpp" + +using namespace ov; +using namespace ov::frontend; + +InputModel::~InputModel() = default; + +std::vector InputModel::get_inputs() const { + return {}; +} + +std::vector InputModel::get_outputs() const { + return {}; +} + +Place::Ptr InputModel::get_place_by_tensor_name(const std::string& tensor_name) const { + return nullptr; +} + +Place::Ptr InputModel::get_place_by_operation_name(const std::string& operation_name) const { + return nullptr; +} + +Place::Ptr InputModel::get_place_by_operation_name_and_input_port(const std::string& operation_name, + int input_port_index) { + return nullptr; +} + +Place::Ptr InputModel::get_place_by_operation_name_and_output_port(const std::string& operation_name, + int output_port_index) { + return nullptr; +} + +void InputModel::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { + FRONT_END_NOT_IMPLEMENTED(set_name_for_tensor); +} + +void InputModel::add_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { + FRONT_END_NOT_IMPLEMENTED(add_name_for_tensor); +} + +void InputModel::set_name_for_operation(Place::Ptr operation, const std::string& new_name) { + FRONT_END_NOT_IMPLEMENTED(set_name_for_operation); +} + +void InputModel::free_name_for_tensor(const std::string& name) { + FRONT_END_NOT_IMPLEMENTED(free_name_for_tensor); +} + +void InputModel::free_name_for_operation(const std::string& name) { + FRONT_END_NOT_IMPLEMENTED(free_name_for_operation); +} + +void InputModel::set_name_for_dimension(Place::Ptr place, size_t shape_dim_index, const std::string& dim_name) { + FRONT_END_NOT_IMPLEMENTED(set_name_for_dimension); +} + +void InputModel::cut_and_add_new_input(Place::Ptr place, const std::string& new_name_optional) { + FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_input); +} + +void InputModel::cut_and_add_new_output(Place::Ptr place, const std::string& new_name_optional) { + FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_output); +} + +Place::Ptr InputModel::add_output(Place::Ptr place) { + FRONT_END_NOT_IMPLEMENTED(add_output); +} + +void InputModel::remove_output(Place::Ptr place) { + FRONT_END_NOT_IMPLEMENTED(remove_output); +} + +void InputModel::override_all_outputs(const std::vector& outputs) { + FRONT_END_NOT_IMPLEMENTED(override_all_outputs); +} + +void InputModel::override_all_inputs(const std::vector& inputs) { + FRONT_END_NOT_IMPLEMENTED(override_all_inputs); +} + +void InputModel::extract_subgraph(const std::vector& inputs, const std::vector& outputs) { + FRONT_END_NOT_IMPLEMENTED(extract_subgraph); +} + +// Setting tensor properties +void InputModel::set_partial_shape(Place::Ptr place, const PartialShape&) { + FRONT_END_NOT_IMPLEMENTED(set_partial_shape); +} + +PartialShape InputModel::get_partial_shape(Place::Ptr place) const { + FRONT_END_NOT_IMPLEMENTED(get_partial_shape); +} + +void InputModel::set_element_type(Place::Ptr place, const element::Type&) { + FRONT_END_NOT_IMPLEMENTED(set_element_type); +} + +void InputModel::set_tensor_value(Place::Ptr place, const void* value) { + FRONT_END_NOT_IMPLEMENTED(set_tensor_value); +} + +void InputModel::set_tensor_partial_value(Place::Ptr place, const void* min_value, const void* max_value) { + FRONT_END_NOT_IMPLEMENTED(set_tensor_partial_value); +} diff --git a/src/frontends/common/src/frontend_manager.cpp b/src/frontends/common/src/manager.cpp similarity index 51% rename from src/frontends/common/src/frontend_manager.cpp rename to src/frontends/common/src/manager.cpp index f50781418a4..7b79721603a 100644 --- a/src/frontends/common/src/frontend_manager.cpp +++ b/src/frontends/common/src/manager.cpp @@ -2,22 +2,19 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "openvino/frontend/manager.hpp" + #include #include -#include "common/frontend_exceptions.hpp" -#include "common/place.hpp" -#include "manager.hpp" -#include "ngraph/except.hpp" -#include "openvino/util/env_util.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/place.hpp" #include "plugin_loader.hpp" -#include "so_extension.hpp" #include "utils.hpp" using namespace ov; using namespace ov::frontend; -//----------- FrontEndManager --------------------------- class FrontEndManager::Impl { std::mutex m_loading_mutex; std::vector m_plugins; @@ -232,285 +229,3 @@ template <> FrontEnd::Ptr FrontEndManager::load_by_model(const std::vector& variants) { return load_by_model_impl(variants); } - -//----------- FrontEnd --------------------------- - -FrontEnd::FrontEnd() = default; - -FrontEnd::~FrontEnd() = default; - -bool FrontEnd::supported_impl(const std::vector& variants) const { - return false; -} - -InputModel::Ptr FrontEnd::load_impl(const std::vector& params) const { - FRONT_END_NOT_IMPLEMENTED(load_impl); -} -std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { - FRONT_END_NOT_IMPLEMENTED(convert); -} - -void FrontEnd::convert(std::shared_ptr) const { - FRONT_END_NOT_IMPLEMENTED(convert); -} - -std::shared_ptr FrontEnd::convert_partially(InputModel::Ptr model) const { - FRONT_END_NOT_IMPLEMENTED(convert_partially); -} - -std::shared_ptr FrontEnd::decode(InputModel::Ptr model) const { - FRONT_END_NOT_IMPLEMENTED(decode); -} - -void FrontEnd::normalize(std::shared_ptr model) const { - FRONT_END_NOT_IMPLEMENTED(normalize); -} - -void FrontEnd::add_extension(const std::shared_ptr& extension) { - // Left unimplemented intentionally. - // Each frontend can support own set of extensions, so this method should be implemented on the frontend side -} - -void FrontEnd::add_extension(const std::vector>& extensions) { - for (const auto& ext : extensions) - add_extension(ext); -} - -void FrontEnd::add_extension(const std::string& library_path) { - add_extension(ov::detail::load_extensions(library_path)); -} - -#ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT -void FrontEnd::add_extension(const std::wstring& library_path) { - add_extension(ov::detail::load_extensions(library_path)); -} -#endif - -std::string FrontEnd::get_name() const { - return std::string(); -} - -//----------- InputModel --------------------------- -std::vector InputModel::get_inputs() const { - return {}; -} - -std::vector InputModel::get_outputs() const { - return {}; -} - -Place::Ptr InputModel::get_place_by_tensor_name(const std::string& tensor_name) const { - return nullptr; -} - -Place::Ptr InputModel::get_place_by_operation_name(const std::string& operation_name) const { - return nullptr; -} - -Place::Ptr InputModel::get_place_by_operation_name_and_input_port(const std::string& operation_name, - int input_port_index) { - return nullptr; -} - -Place::Ptr InputModel::get_place_by_operation_name_and_output_port(const std::string& operation_name, - int output_port_index) { - return nullptr; -} - -void InputModel::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { - FRONT_END_NOT_IMPLEMENTED(set_name_for_tensor); -} - -void InputModel::add_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { - FRONT_END_NOT_IMPLEMENTED(add_name_for_tensor); -} - -void InputModel::set_name_for_operation(Place::Ptr operation, const std::string& new_name) { - FRONT_END_NOT_IMPLEMENTED(set_name_for_operation); -} - -void InputModel::free_name_for_tensor(const std::string& name) { - FRONT_END_NOT_IMPLEMENTED(free_name_for_tensor); -} - -void InputModel::free_name_for_operation(const std::string& name) { - FRONT_END_NOT_IMPLEMENTED(free_name_for_operation); -} - -void InputModel::set_name_for_dimension(Place::Ptr place, size_t shape_dim_index, const std::string& dim_name) { - FRONT_END_NOT_IMPLEMENTED(set_name_for_dimension); -} - -void InputModel::cut_and_add_new_input(Place::Ptr place, const std::string& new_name_optional) { - FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_input); -} - -void InputModel::cut_and_add_new_output(Place::Ptr place, const std::string& new_name_optional) { - FRONT_END_NOT_IMPLEMENTED(cut_and_add_new_output); -} - -Place::Ptr InputModel::add_output(Place::Ptr place) { - FRONT_END_NOT_IMPLEMENTED(add_output); -} - -void InputModel::remove_output(Place::Ptr place) { - FRONT_END_NOT_IMPLEMENTED(remove_output); -} - -void InputModel::override_all_outputs(const std::vector& outputs) { - FRONT_END_NOT_IMPLEMENTED(override_all_outputs); -} - -void InputModel::override_all_inputs(const std::vector& inputs) { - FRONT_END_NOT_IMPLEMENTED(override_all_inputs); -} - -void InputModel::extract_subgraph(const std::vector& inputs, const std::vector& outputs) { - FRONT_END_NOT_IMPLEMENTED(extract_subgraph); -} - -// Setting tensor properties -void InputModel::set_partial_shape(Place::Ptr place, const PartialShape&) { - FRONT_END_NOT_IMPLEMENTED(set_partial_shape); -} - -PartialShape InputModel::get_partial_shape(Place::Ptr place) const { - FRONT_END_NOT_IMPLEMENTED(get_partial_shape); -} - -void InputModel::set_element_type(Place::Ptr place, const element::Type&) { - FRONT_END_NOT_IMPLEMENTED(set_element_type); -} - -void InputModel::set_tensor_value(Place::Ptr place, const void* value) { - FRONT_END_NOT_IMPLEMENTED(set_tensor_value); -} - -void InputModel::set_tensor_partial_value(Place::Ptr place, const void* min_value, const void* max_value) { - FRONT_END_NOT_IMPLEMENTED(set_tensor_partial_value); -} - -//----------- Place --------------------------- -std::vector Place::get_names() const { - FRONT_END_NOT_IMPLEMENTED(get_names); -} - -std::vector Place::get_consuming_operations() const { - return {}; -} - -std::vector Place::get_consuming_operations(int output_port_index) const { - return {}; -} - -std::vector Place::get_consuming_operations(const std::string& outputPortName, int outputPortIndex) const { - return {}; -} - -Place::Ptr Place::get_target_tensor() const { - return nullptr; -} - -Place::Ptr Place::get_target_tensor(int output_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation() const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation(int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_producing_port() const { - return nullptr; -} - -Place::Ptr Place::get_input_port() const { - return nullptr; -} - -Place::Ptr Place::get_input_port(int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_input_port(const std::string& input_name) const { - return nullptr; -} - -Place::Ptr Place::get_input_port(const std::string& input_name, int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_output_port() const { - return nullptr; -} - -Place::Ptr Place::get_output_port(int output_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_output_port(const std::string& output_name) const { - return nullptr; -} - -Place::Ptr Place::get_output_port(const std::string& output_name, int output_port_index) const { - return nullptr; -} - -std::vector Place::get_consuming_ports() const { - return {}; -} - -bool Place::is_input() const { - FRONT_END_NOT_IMPLEMENTED(is_input); -} - -bool Place::is_output() const { - FRONT_END_NOT_IMPLEMENTED(is_output); -} - -bool Place::is_equal(Ptr another) const { - FRONT_END_NOT_IMPLEMENTED(is_equal); -} - -bool Place::is_equal_data(Ptr another) const { - FRONT_END_NOT_IMPLEMENTED(is_equal_data); -} - -Place::Ptr Place::get_source_tensor() const { - return nullptr; -} - -Place::Ptr Place::get_source_tensor(int input_port_index) const { - return nullptr; -} - -Place::Ptr Place::get_source_tensor(const std::string& inputName, int inputPortIndex) const { - return nullptr; -} - -Place::Ptr Place::get_source_tensor(const std::string& inputName) const { - return nullptr; -} - -Place::Ptr Place::get_target_tensor(const std::string& outputPortName) const { - return nullptr; -} - -Place::Ptr Place::get_target_tensor(const std::string& outputPortName, int outputPortIndex) const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation(const std::string& inputName) const { - return nullptr; -} - -Place::Ptr Place::get_producing_operation(const std::string& inputName, int inputPortIndex) const { - return nullptr; -} - -std::vector Place::get_consuming_operations(const std::string& outputPortName) const { - return {}; -} diff --git a/src/frontends/common/src/place.cpp b/src/frontends/common/src/place.cpp new file mode 100644 index 00000000000..9b8f611f9ce --- /dev/null +++ b/src/frontends/common/src/place.cpp @@ -0,0 +1,139 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "openvino/frontend/place.hpp" + +#include + +#include "openvino/frontend/exception.hpp" +#include "utils.hpp" + +using namespace ov; +using namespace ov::frontend; + +Place::~Place() = default; + +std::vector Place::get_names() const { + FRONT_END_NOT_IMPLEMENTED(get_names); +} + +std::vector Place::get_consuming_operations() const { + return {}; +} + +std::vector Place::get_consuming_operations(int output_port_index) const { + return {}; +} + +std::vector Place::get_consuming_operations(const std::string& outputPortName, int outputPortIndex) const { + return {}; +} + +Place::Ptr Place::get_target_tensor() const { + return nullptr; +} + +Place::Ptr Place::get_target_tensor(int output_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation() const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation(int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_producing_port() const { + return nullptr; +} + +Place::Ptr Place::get_input_port() const { + return nullptr; +} + +Place::Ptr Place::get_input_port(int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_input_port(const std::string& input_name) const { + return nullptr; +} + +Place::Ptr Place::get_input_port(const std::string& input_name, int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_output_port() const { + return nullptr; +} + +Place::Ptr Place::get_output_port(int output_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_output_port(const std::string& output_name) const { + return nullptr; +} + +Place::Ptr Place::get_output_port(const std::string& output_name, int output_port_index) const { + return nullptr; +} + +std::vector Place::get_consuming_ports() const { + return {}; +} + +bool Place::is_input() const { + FRONT_END_NOT_IMPLEMENTED(is_input); +} + +bool Place::is_output() const { + FRONT_END_NOT_IMPLEMENTED(is_output); +} + +bool Place::is_equal(Ptr another) const { + FRONT_END_NOT_IMPLEMENTED(is_equal); +} + +bool Place::is_equal_data(Ptr another) const { + FRONT_END_NOT_IMPLEMENTED(is_equal_data); +} + +Place::Ptr Place::get_source_tensor() const { + return nullptr; +} + +Place::Ptr Place::get_source_tensor(int input_port_index) const { + return nullptr; +} + +Place::Ptr Place::get_source_tensor(const std::string& inputName, int inputPortIndex) const { + return nullptr; +} + +Place::Ptr Place::get_source_tensor(const std::string& inputName) const { + return nullptr; +} + +Place::Ptr Place::get_target_tensor(const std::string& outputPortName) const { + return nullptr; +} + +Place::Ptr Place::get_target_tensor(const std::string& outputPortName, int outputPortIndex) const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation(const std::string& inputName) const { + return nullptr; +} + +Place::Ptr Place::get_producing_operation(const std::string& inputName, int inputPortIndex) const { + return nullptr; +} + +std::vector Place::get_consuming_operations(const std::string& outputPortName) const { + return {}; +} diff --git a/src/frontends/common/src/plugin_loader.cpp b/src/frontends/common/src/plugin_loader.cpp index e3d3cb1c2f4..e7233ec2542 100644 --- a/src/frontends/common/src/plugin_loader.cpp +++ b/src/frontends/common/src/plugin_loader.cpp @@ -16,7 +16,7 @@ #include -#include +#include #include #include @@ -61,7 +61,6 @@ void load_static_plugins(std::vector& res) { // TODO: change to std::filesystem for C++17 static std::vector list_files(const std::string& path) { - NGRAPH_SUPPRESS_DEPRECATED_START std::vector res; try { const auto prefix = std::string(FRONTEND_LIB_PREFIX); @@ -82,7 +81,6 @@ static std::vector list_files(const std::string& path) { // Ignore exceptions } return res; - NGRAPH_SUPPRESS_DEPRECATED_END } void ov::frontend::find_plugins(const std::string& dir_name, std::vector& res) { @@ -99,7 +97,7 @@ void ov::frontend::find_plugins(const std::string& dir_name, std::vector(ov::util::get_symbol(so, "GetAPIVersion")); if (!info_addr) { - NGRAPH_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have API version" << std::endl; + OPENVINO_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have API version" << std::endl; return false; } FrontEndVersion plug_info{reinterpret_cast(info_addr())}; if (plug_info != OV_FRONTEND_API_VERSION) { // Plugin has incompatible API version, do not load it - NGRAPH_DEBUG << "Loaded FrontEnd [" << m_file_path << "] has incompatible API version" << plug_info - << std::endl; + OPENVINO_DEBUG << "Loaded FrontEnd [" << m_file_path << "] has incompatible API version" << plug_info + << std::endl; return false; } auto creator_addr = reinterpret_cast(ov::util::get_symbol(so, "GetFrontEndData")); if (!creator_addr) { - NGRAPH_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have Frontend Data" << std::endl; + OPENVINO_DEBUG << "Loaded FrontEnd [" << m_file_path << "] doesn't have Frontend Data" << std::endl; return false; } diff --git a/src/frontends/common/src/plugin_loader.hpp b/src/frontends/common/src/plugin_loader.hpp index 32340d05729..481b6dd434a 100644 --- a/src/frontends/common/src/plugin_loader.hpp +++ b/src/frontends/common/src/plugin_loader.hpp @@ -4,7 +4,7 @@ #pragma once -#include +#include #ifdef _WIN32 static const char PathSeparator[] = ";"; diff --git a/src/frontends/common/src/telemetry_extension.cpp b/src/frontends/common/src/telemetry_extension.cpp index 134836ac701..8dfa0c3725d 100644 --- a/src/frontends/common/src/telemetry_extension.cpp +++ b/src/frontends/common/src/telemetry_extension.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "common/telemetry_extension.hpp" +#include "openvino/frontend/telemetry_extension.hpp" using namespace ov::frontend; diff --git a/src/frontends/common/src/utils.cpp b/src/frontends/common/src/utils.cpp index 8fceccf2718..35a54723e6e 100644 --- a/src/frontends/common/src/utils.cpp +++ b/src/frontends/common/src/utils.cpp @@ -4,7 +4,7 @@ #include "utils.hpp" -#include "common/frontend_exceptions.hpp" +#include "openvino/frontend/exception.hpp" #include "openvino/util/file_util.hpp" #include "plugin_loader.hpp" diff --git a/src/frontends/common/src/utils.hpp b/src/frontends/common/src/utils.hpp index c5a4f30475f..100e4abb207 100644 --- a/src/frontends/common/src/utils.hpp +++ b/src/frontends/common/src/utils.hpp @@ -4,7 +4,7 @@ #include -#include "common/frontend_defs.hpp" +#include "openvino/frontend/visibility.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/ir/include/ir_frontend/model.hpp b/src/frontends/ir/include/ir_frontend/model.hpp deleted file mode 100644 index 243bb327d9b..00000000000 --- a/src/frontends/ir/include/ir_frontend/model.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (C) 2018-2021 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#pragma once - -#include -#include - -#include "ir_frontend/utility.hpp" -#include "manager.hpp" -#include "ngraph/runtime/aligned_buffer.hpp" - -namespace ov { -namespace frontend { - -class IR_API InputModelIR : public InputModel { - friend class FrontEndIR; - class InputModelIRImpl; - std::shared_ptr _impl; - -public: - InputModelIR(std::istream& stream, - const std::shared_ptr& weights, - const std::unordered_map& extensions); - - std::shared_ptr convert(); -}; - -} // namespace frontend -} // namespace ov diff --git a/src/frontends/ir/include/ir_frontend/frontend.hpp b/src/frontends/ir/include/openvino/frontend/ir/frontend.hpp similarity index 82% rename from src/frontends/ir/include/ir_frontend/frontend.hpp rename to src/frontends/ir/include/openvino/frontend/ir/frontend.hpp index ac79bca3ff1..4139e37b929 100644 --- a/src/frontends/ir/include/ir_frontend/frontend.hpp +++ b/src/frontends/ir/include/openvino/frontend/ir/frontend.hpp @@ -4,16 +4,19 @@ #pragma once -#include "common/frontend.hpp" -#include "common/telemetry_extension.hpp" -#include "utility.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/frontend.hpp" +#include "openvino/frontend/ir/visibility.hpp" +#include "openvino/frontend/telemetry_extension.hpp" +#include "openvino/openvino.hpp" namespace ov { namespace frontend { +namespace ir { -class IR_API FrontEndIR : public FrontEnd { +class IR_API FrontEnd : public ov::frontend::FrontEnd { public: - FrontEndIR() = default; + FrontEnd() = default; /// \brief Completely convert the remaining, not converted part of a function. /// \param partiallyConverted partially converted nGraph function @@ -47,5 +50,6 @@ private: std::shared_ptr m_telemetry; }; +} // namespace ir } // namespace frontend } // namespace ov diff --git a/src/frontends/ir/include/ir_frontend/utility.hpp b/src/frontends/ir/include/openvino/frontend/ir/visibility.hpp similarity index 60% rename from src/frontends/ir/include/ir_frontend/utility.hpp rename to src/frontends/ir/include/openvino/frontend/ir/visibility.hpp index 5e9555fc50d..a90f0e1d529 100644 --- a/src/frontends/ir/include/ir_frontend/utility.hpp +++ b/src/frontends/ir/include/openvino/frontend/ir/visibility.hpp @@ -18,13 +18,3 @@ # define IR_C_API OPENVINO_EXTERN_C OPENVINO_CORE_IMPORTS # endif // ir_ov_frontend_EXPORTS #endif // OPENVINO_STATIC_LIBRARY - -#define IR_ASSERT(ex, msg) \ - { \ - if (!(ex)) \ - throw std::runtime_error(msg); \ - } - -#define IR_THROW(msg) throw std::runtime_error(std::string("ERROR: ") + msg) - -#define NOT_IMPLEMENTED(msg) throw std::runtime_error(std::string(msg) + " is not implemented") diff --git a/src/frontends/ir/src/frontend.cpp b/src/frontends/ir/src/frontend.cpp index ff32cde6dee..4ce3da25c5a 100644 --- a/src/frontends/ir/src/frontend.cpp +++ b/src/frontends/ir/src/frontend.cpp @@ -2,13 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "ir_frontend/frontend.hpp" +#include "openvino/frontend/ir/frontend.hpp" #include #include -#include "ir_frontend/model.hpp" -#include "ir_frontend/utility.hpp" +#include "input_model.hpp" #include "ngraph/runtime/aligned_buffer.hpp" #include "ngraph/runtime/shared_buffer.hpp" #include "openvino/core/any.hpp" @@ -20,6 +19,7 @@ using namespace ov; namespace ov { namespace frontend { +namespace ir { namespace { inline size_t GetIRVersion(pugi::xml_node& root) { @@ -59,7 +59,7 @@ size_t GetIRVersion(std::istream& model) { } // namespace -bool FrontEndIR::supported_impl(const std::vector& variants) const { +bool FrontEnd::supported_impl(const std::vector& variants) const { std::ifstream local_model_stream; std::istream* provided_model_stream = nullptr; @@ -99,7 +99,7 @@ bool FrontEndIR::supported_impl(const std::vector& variants) const { return version >= 10 && version <= 11; } -void FrontEndIR::add_extension(const ov::Extension::Ptr& ext) { +void FrontEnd::add_extension(const ov::Extension::Ptr& ext) { if (auto telemetry = std::dynamic_pointer_cast(ext)) { m_telemetry = telemetry; } else if (auto so_ext = std::dynamic_pointer_cast(ext)) { @@ -111,7 +111,7 @@ void FrontEndIR::add_extension(const ov::Extension::Ptr& ext) { extensions.emplace_back(ext); } -InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) const { +InputModel::Ptr FrontEnd::load_impl(const std::vector& variants) const { std::ifstream local_model_stream; std::istream* provided_model_stream = nullptr; std::shared_ptr weights; @@ -125,11 +125,11 @@ InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) cons return exts; }; - auto create_input_model = [&]() -> std::shared_ptr { + auto create_input_model = [&]() -> std::shared_ptr { if (provided_model_stream) { - return std::make_shared(*provided_model_stream, weights, create_extensions_map()); + return std::make_shared(*provided_model_stream, weights, create_extensions_map()); } else if (local_model_stream.is_open()) { - auto input_model = std::make_shared(local_model_stream, weights, create_extensions_map()); + auto input_model = std::make_shared(local_model_stream, weights, create_extensions_map()); local_model_stream.close(); return input_model; } @@ -203,9 +203,9 @@ InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) cons bin_stream.open(weights_path, std::ios::binary); if (!bin_stream.is_open()) #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) - IR_THROW("Weights file " + ov::util::wstring_to_string(weights_path) + " cannot be opened!"); + IE_THROW() << "Weights file " + ov::util::wstring_to_string(weights_path) + " cannot be opened!"; #else - IR_THROW("Weights file " + weights_path + " cannot be opened!"); + IE_THROW() << "Weights file " + weights_path + " cannot be opened!"; #endif bin_stream.seekg(0, std::ios::end); @@ -225,15 +225,17 @@ InputModel::Ptr FrontEndIR::load_impl(const std::vector& variants) cons return create_input_model(); } -std::shared_ptr FrontEndIR::convert(InputModel::Ptr model) const { - auto ir_model = std::dynamic_pointer_cast(model); +std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { + auto ir_model = std::dynamic_pointer_cast(model); OPENVINO_ASSERT(ir_model != nullptr); return ir_model->convert(); } -std::string FrontEndIR::get_name() const { +std::string FrontEnd::get_name() const { return "ir"; } + +} // namespace ir } // namespace frontend } // namespace ov @@ -245,7 +247,7 @@ IR_C_API void* GetFrontEndData() { frontend::FrontEndPluginInfo* res = new frontend::FrontEndPluginInfo(); res->m_name = "ir"; res->m_creator = []() { - return std::make_shared(); + return std::make_shared(); }; return res; } diff --git a/src/frontends/ir/src/model.cpp b/src/frontends/ir/src/input_model.cpp similarity index 95% rename from src/frontends/ir/src/model.cpp rename to src/frontends/ir/src/input_model.cpp index 341cb6ea54a..96b38ce906c 100644 --- a/src/frontends/ir/src/model.cpp +++ b/src/frontends/ir/src/input_model.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "ir_frontend/model.hpp" +#include "input_model.hpp" #include @@ -186,7 +186,9 @@ void ParsePreProcess(pugi::xml_node& root, namespace ov { namespace frontend { -class InputModelIR::InputModelIRImpl { +namespace ir { + +class InputModel::InputModelIRImpl { std::shared_ptr m_weights; std::unordered_map m_extensions; std::unordered_map m_opsets; @@ -217,17 +219,17 @@ public: std::shared_ptr convert(); }; -InputModelIR::InputModelIR(std::istream& stream, - const std::shared_ptr& weights, - const std::unordered_map& extensions) { +InputModel::InputModel(std::istream& stream, + const std::shared_ptr& weights, + const std::unordered_map& extensions) { _impl = std::make_shared(stream, weights, extensions); } -std::shared_ptr InputModelIR::convert() { +std::shared_ptr InputModel::convert() { return _impl->convert(); } -std::shared_ptr InputModelIR::InputModelIRImpl::convert() { +std::shared_ptr InputModel::InputModelIRImpl::convert() { std::unordered_map> variables; // Load default opsets @@ -240,5 +242,7 @@ std::shared_ptr InputModelIR::InputModelIRImpl::convert() { return function; } + +} // namespace ir } // namespace frontend } // namespace ov diff --git a/src/frontends/ir/src/input_model.hpp b/src/frontends/ir/src/input_model.hpp new file mode 100644 index 00000000000..6fae50ea6cd --- /dev/null +++ b/src/frontends/ir/src/input_model.hpp @@ -0,0 +1,33 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include +#include + +#include "ngraph/runtime/aligned_buffer.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" + +namespace ov { +namespace frontend { +namespace ir { + +class InputModel : public ov::frontend::InputModel { + friend class FrontEnd; + class InputModelIRImpl; + std::shared_ptr _impl; + +public: + InputModel(std::istream& stream, + const std::shared_ptr& weights, + const std::unordered_map& extensions); + + std::shared_ptr convert(); +}; + +} // namespace ir +} // namespace frontend +} // namespace ov diff --git a/src/frontends/ir/src/ir_deserializer.cpp b/src/frontends/ir/src/ir_deserializer.cpp index 555d32997a7..166c9a92808 100644 --- a/src/frontends/ir/src/ir_deserializer.cpp +++ b/src/frontends/ir/src/ir_deserializer.cpp @@ -7,7 +7,6 @@ #include #include "ie_ngraph_utils.hpp" -#include "ir_frontend/model.hpp" #include "ngraph/op/util/framework_node.hpp" #include "ngraph/opsets/opset1.hpp" #include "rt_info_deserializer.hpp" diff --git a/src/frontends/ir/src/ir_deserializer.hpp b/src/frontends/ir/src/ir_deserializer.hpp index 869a980fed2..27836bb5220 100644 --- a/src/frontends/ir/src/ir_deserializer.hpp +++ b/src/frontends/ir/src/ir_deserializer.hpp @@ -9,7 +9,7 @@ #include #include "ie_ngraph_utils.hpp" -#include "ir_frontend/model.hpp" +#include "input_model.hpp" #include "ngraph/opsets/opset.hpp" #include "openvino/core/attribute_visitor.hpp" #include "openvino/core/op_extension.hpp" diff --git a/src/frontends/ir/src/rt_info_deserializer.cpp b/src/frontends/ir/src/rt_info_deserializer.cpp index 0b7bee7c329..1c39be259ba 100644 --- a/src/frontends/ir/src/rt_info_deserializer.cpp +++ b/src/frontends/ir/src/rt_info_deserializer.cpp @@ -2,11 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // -#include #include #include #include +#include "openvino/frontend/exception.hpp" + using namespace ov; void RTInfoDeserializer::on_adapter(const std::string& name, ValueAccessor& adapter) { @@ -19,6 +20,6 @@ void RTInfoDeserializer::on_adapter(const std::string& name, ValueAccessor str_to_container(val, ss); a->set(ss); } else { - IR_THROW("Not implemented"); + IE_THROW() << "Not implemented"; } } diff --git a/src/frontends/ir/src/rt_info_deserializer.hpp b/src/frontends/ir/src/rt_info_deserializer.hpp index f706fbc7c7f..22d5550ac63 100644 --- a/src/frontends/ir/src/rt_info_deserializer.hpp +++ b/src/frontends/ir/src/rt_info_deserializer.hpp @@ -7,7 +7,6 @@ #include #include -#include "ir_frontend/utility.hpp" #include "openvino/core/attribute_visitor.hpp" #include "utils.hpp" diff --git a/src/frontends/onnx/frontend/CMakeLists.txt b/src/frontends/onnx/frontend/CMakeLists.txt index 5fe802a7f3f..aaf2b473682 100644 --- a/src/frontends/onnx/frontend/CMakeLists.txt +++ b/src/frontends/onnx/frontend/CMakeLists.txt @@ -20,6 +20,6 @@ ov_ncc_naming_style(FOR_TARGET ${TARGET_NAME} $) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/onnx_import - DESTINATION ${FRONTEND_INSTALL_INCLUDE} + DESTINATION ${FRONTEND_INSTALL_INCLUDE}/ngraph/frontend COMPONENT core_dev FILES_MATCHING PATTERN "*.hpp") diff --git a/src/frontends/onnx/frontend/include/onnx_frontend/frontend.hpp b/src/frontends/onnx/frontend/include/openvino/frontend/onnx/frontend.hpp similarity index 86% rename from src/frontends/onnx/frontend/include/onnx_frontend/frontend.hpp rename to src/frontends/onnx/frontend/include/openvino/frontend/onnx/frontend.hpp index a82d7056a70..131bff7aa79 100644 --- a/src/frontends/onnx/frontend/include/onnx_frontend/frontend.hpp +++ b/src/frontends/onnx/frontend/include/openvino/frontend/onnx/frontend.hpp @@ -4,7 +4,8 @@ #pragma once -#include +#include +#include #ifdef OPENVINO_STATIC_LIBRARY # define ONNX_FRONTEND_API @@ -21,7 +22,9 @@ namespace ov { namespace frontend { -class ONNX_FRONTEND_API FrontEndONNX : public FrontEnd { +namespace onnx { + +class ONNX_FRONTEND_API FrontEnd : public ov::frontend::FrontEnd { public: std::shared_ptr convert(InputModel::Ptr model) const override; void convert(std::shared_ptr partially_converted) const override; @@ -37,5 +40,6 @@ private: std::shared_ptr m_telemetry; }; +} // namespace onnx } // namespace frontend } // namespace ov diff --git a/src/frontends/onnx/frontend/src/core/graph.cpp b/src/frontends/onnx/frontend/src/core/graph.cpp index 2c76c62d377..212766fc550 100644 --- a/src/frontends/onnx/frontend/src/core/graph.cpp +++ b/src/frontends/onnx/frontend/src/core/graph.cpp @@ -199,9 +199,10 @@ void Graph::decode_to_framework_nodes() { if (node.has_subgraphs()) { const auto& subgraphs = node.get_subgraphs(); auto inputs = node.get_ng_inputs(); + std::vector> functions; for (const auto& kv : subgraphs) { auto& subgraph = kv.second; - subgraph->decode(); + functions.push_back(subgraph->decode()); for (const auto& input : subgraph->get_inputs_from_parent()) { const auto& name = input.get_node()->get_friendly_name(); if (std::find_if(inputs.begin(), inputs.end(), [&name](const Output& n) -> bool { @@ -211,10 +212,9 @@ void Graph::decode_to_framework_nodes() { } } } - framework_node = - std::make_shared(shared_from_this(), node, inputs); + framework_node = std::make_shared(node, functions, inputs); } else { - framework_node = std::make_shared(shared_from_this(), node); + framework_node = std::make_shared(node); } OutputVector ng_nodes{framework_node->outputs()}; set_friendly_names(node, ng_nodes); @@ -240,7 +240,10 @@ std::shared_ptr Graph::create_function() { std::shared_ptr Graph::decode() { decode_to_framework_nodes(); - return create_function(); + auto function = create_function(); + auto& rt_info = function->get_rt_info(); + rt_info[ONNX_GRAPH_RT_ATTRIBUTE] = shared_from_this(); + return function; } bool Graph::is_ng_node_in_cache(const std::string& name) const { @@ -399,7 +402,8 @@ void Subgraph::find_inputs_from_parent() { for (const auto& out_name : node_proto.output()) { if (m_cache->contains(out_name)) { auto node_to_replace_input = m_cache->get_node(out_name).get_node(); - if (!dynamic_cast(node_to_replace_input)) + if (!ov::is_type(node_to_replace_input) && + !ov::is_type(node_to_replace_input)) continue; auto inputs = node_to_replace_input->input_values(); for (size_t i = 0; i < inputs.size(); i++) { diff --git a/src/frontends/onnx/frontend/src/core/graph.hpp b/src/frontends/onnx/frontend/src/core/graph.hpp index a7a983b038a..49991b29754 100644 --- a/src/frontends/onnx/frontend/src/core/graph.hpp +++ b/src/frontends/onnx/frontend/src/core/graph.hpp @@ -10,12 +10,12 @@ #include #include -#include "common/telemetry_extension.hpp" #include "core/graph_cache.hpp" #include "core/model.hpp" #include "ngraph/function.hpp" #include "ngraph/op/parameter.hpp" #include "onnx_import/core/operator_set.hpp" +#include "openvino/frontend/telemetry_extension.hpp" namespace ngraph { namespace onnx_import { @@ -121,6 +121,8 @@ inline std::ostream& operator<<(std::ostream& outs, const Graph& graph) { return (outs << ""); } +static const char* const ONNX_GRAPH_RT_ATTRIBUTE = "onnx_graph"; + } // namespace onnx_import } // namespace ngraph diff --git a/src/frontends/onnx/frontend/src/editor.hpp b/src/frontends/onnx/frontend/src/editor.hpp index 133a6dcc743..d72d03a64ad 100644 --- a/src/frontends/onnx/frontend/src/editor.hpp +++ b/src/frontends/onnx/frontend/src/editor.hpp @@ -4,10 +4,10 @@ #pragma once -#include #include #include #include +#include #include "editor_types.hpp" #include "ngraph/function.hpp" diff --git a/src/frontends/onnx/frontend/src/frontend.cpp b/src/frontends/onnx/frontend/src/frontend.cpp index 6acec3bd5f3..38aca686dde 100644 --- a/src/frontends/onnx/frontend/src/frontend.cpp +++ b/src/frontends/onnx/frontend/src/frontend.cpp @@ -2,82 +2,82 @@ // SPDX-License-Identifier: Apache-2.0 // -#include -#include #include #include -#include -#include #include +#include +#include +#include +#include #include #include #include "onnx_common/onnx_model_validator.hpp" using namespace ov; -using namespace ov::frontend; +using namespace ov::frontend::onnx; -ONNX_FRONTEND_C_API FrontEndVersion GetAPIVersion() { +ONNX_FRONTEND_C_API ov::frontend::FrontEndVersion GetAPIVersion() { return OV_FRONTEND_API_VERSION; } ONNX_FRONTEND_C_API void* GetFrontEndData() { - FrontEndPluginInfo* res = new FrontEndPluginInfo(); + ov::frontend::FrontEndPluginInfo* res = new ov::frontend::FrontEndPluginInfo(); res->m_name = "onnx"; res->m_creator = []() { - return std::make_shared(); + return std::make_shared(); }; return res; } -InputModel::Ptr FrontEndONNX::load_impl(const std::vector& variants) const { - if (variants.size() == 0) { +InputModel::Ptr FrontEnd::load_impl(const std::vector& variants) const { + if (variants.empty()) { return nullptr; } if (variants[0].is()) { const auto path = variants[0].as(); - return std::make_shared(path, m_telemetry); + return std::make_shared(path, m_telemetry); } #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) if (variants[0].is()) { const auto path = variants[0].as(); - return std::make_shared(path, m_telemetry); + return std::make_shared(path, m_telemetry); } #endif if (variants[0].is()) { const auto stream = variants[0].as(); if (variants.size() > 1 && variants[1].is()) { const auto path = variants[0].as(); - return std::make_shared(*stream, path, m_telemetry); + return std::make_shared(*stream, path, m_telemetry); } #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) if (variants.size() > 1 && variants[1].is()) { const auto path = variants[1].as(); - return std::make_shared(*stream, path, m_telemetry); + return std::make_shared(*stream, path, m_telemetry); } #endif - return std::make_shared(*stream, m_telemetry); + return std::make_shared(*stream, m_telemetry); } return nullptr; } -std::shared_ptr FrontEndONNX::convert(InputModel::Ptr model) const { - auto model_onnx = std::dynamic_pointer_cast(model); +std::shared_ptr FrontEnd::convert(InputModel::Ptr model) const { + auto model_onnx = std::dynamic_pointer_cast(model); NGRAPH_CHECK(model_onnx != nullptr, "Invalid input model"); return model_onnx->convert(); } -void FrontEndONNX::convert(std::shared_ptr partially_converted) const { +void FrontEnd::convert(std::shared_ptr partially_converted) const { ngraph::onnx_import::detail::convert_decoded_function(partially_converted); } -std::shared_ptr FrontEndONNX::decode(InputModel::Ptr model) const { - auto model_onnx = std::dynamic_pointer_cast(model); +std::shared_ptr FrontEnd::decode(InputModel::Ptr model) const { + auto model_onnx = std::dynamic_pointer_cast(model); NGRAPH_CHECK(model_onnx != nullptr, "Invalid input model"); return model_onnx->decode(); } -std::string FrontEndONNX::get_name() const { +std::string FrontEnd::get_name() const { return "onnx"; } @@ -103,7 +103,7 @@ private: }; } // namespace -bool FrontEndONNX::supported_impl(const std::vector& variants) const { +bool FrontEnd::supported_impl(const std::vector& variants) const { if (variants.size() == 0) { return false; } @@ -133,7 +133,7 @@ bool FrontEndONNX::supported_impl(const std::vector& variants) const { return false; } -void FrontEndONNX::add_extension(const std::shared_ptr& extension) { +void FrontEnd::add_extension(const std::shared_ptr& extension) { if (auto telemetry = std::dynamic_pointer_cast(extension)) { m_telemetry = telemetry; } diff --git a/src/frontends/onnx/frontend/src/input_model.cpp b/src/frontends/onnx/frontend/src/input_model.cpp index 38fda9ae8a7..a3df6da6a93 100644 --- a/src/frontends/onnx/frontend/src/input_model.cpp +++ b/src/frontends/onnx/frontend/src/input_model.cpp @@ -4,79 +4,76 @@ #include "input_model.hpp" -#include +#include #include #include "place.hpp" using namespace ov; -using namespace ov::frontend; +using namespace ov::frontend::onnx; NGRAPH_SUPPRESS_DEPRECATED_START -InputModelONNX::InputModelONNX(const std::string& path, - const std::shared_ptr& telemetry) +InputModel::InputModel(const std::string& path, const std::shared_ptr& telemetry) : m_editor{std::make_shared(path, telemetry)} {} #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) -InputModelONNX::InputModelONNX(const std::wstring& path, - const std::shared_ptr& telemetry) +InputModel::InputModel(const std::wstring& path, const std::shared_ptr& telemetry) : m_editor{std::make_shared(path, telemetry)} {} #endif -InputModelONNX::InputModelONNX(std::istream& model_stream, - const std::shared_ptr& telemetry) +InputModel::InputModel(std::istream& model_stream, const std::shared_ptr& telemetry) : m_editor{std::make_shared(model_stream, "", telemetry)} {} -InputModelONNX::InputModelONNX(std::istream& model_stream, - const std::string& path, - const std::shared_ptr& telemetry) +InputModel::InputModel(std::istream& model_stream, + const std::string& path, + const std::shared_ptr& telemetry) : m_editor{std::make_shared(model_stream, path, telemetry)} {} #ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT -InputModelONNX::InputModelONNX(std::istream& model_stream, - const std::wstring& path, - const std::shared_ptr& telemetry) - : InputModelONNX(model_stream, ov::util::wstring_to_string(path), telemetry) {} +InputModel::InputModel(std::istream& model_stream, + const std::wstring& path, + const std::shared_ptr& telemetry) + : InputModel(model_stream, ov::util::wstring_to_string(path), telemetry) {} #endif -std::vector InputModelONNX::get_inputs() const { +std::vector InputModel::get_inputs() const { const auto& inputs = m_editor->model_inputs(); - std::vector in_places; + std::vector in_places; in_places.reserve(inputs.size()); for (const auto& input : inputs) { - in_places.push_back(std::make_shared(input, m_editor)); + in_places.push_back(std::make_shared(input, m_editor)); } return in_places; } -std::vector InputModelONNX::get_outputs() const { +std::vector InputModel::get_outputs() const { const auto& outputs = m_editor->model_outputs(); - std::vector out_places; + std::vector out_places; out_places.reserve(outputs.size()); for (const auto& output : outputs) { - out_places.push_back(std::make_shared(output, m_editor)); + out_places.push_back(std::make_shared(output, m_editor)); } return out_places; } -Place::Ptr InputModelONNX::get_place_by_tensor_name(const std::string& tensor_name) const { +ov::frontend::Place::Ptr InputModel::get_place_by_tensor_name(const std::string& tensor_name) const { if (m_editor->is_correct_tensor_name(tensor_name)) { - return std::make_shared(tensor_name, m_editor); + return std::make_shared(tensor_name, m_editor); } return nullptr; } -Place::Ptr InputModelONNX::get_place_by_operation_name(const std::string& operation_name) const { +ov::frontend::Place::Ptr InputModel::get_place_by_operation_name(const std::string& operation_name) const { if (m_editor->is_correct_and_unambiguous_node(operation_name)) { const auto node_index = m_editor->get_node_index(onnx_editor::EditorNode{operation_name}); - return std::make_shared(onnx_editor::EditorNode{node_index}, m_editor); + return std::make_shared(onnx_editor::EditorNode{node_index}, m_editor); } return nullptr; } -Place::Ptr InputModelONNX::get_place_by_operation_name_and_input_port(const std::string& operation_name, - int input_port_index) { +ov::frontend::Place::Ptr InputModel::get_place_by_operation_name_and_input_port(const std::string& operation_name, + int input_port_index) { const auto op = get_place_by_operation_name(operation_name); if (op != nullptr) { return op->get_input_port(input_port_index); @@ -84,8 +81,8 @@ Place::Ptr InputModelONNX::get_place_by_operation_name_and_input_port(const std: return nullptr; } -Place::Ptr InputModelONNX::get_place_by_operation_name_and_output_port(const std::string& operation_name, - int output_port_index) { +ov::frontend::Place::Ptr InputModel::get_place_by_operation_name_and_output_port(const std::string& operation_name, + int output_port_index) { const auto op = get_place_by_operation_name(operation_name); if (op != nullptr) { return op->get_output_port(output_port_index); @@ -93,74 +90,76 @@ Place::Ptr InputModelONNX::get_place_by_operation_name_and_output_port(const std return nullptr; } -void InputModelONNX::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) { - const auto onnx_tensor = std::dynamic_pointer_cast(tensor); +void InputModel::set_name_for_tensor(ov::frontend::Place::Ptr tensor, const std::string& new_name) { + const auto onnx_tensor = std::dynamic_pointer_cast(tensor); FRONT_END_GENERAL_CHECK(onnx_tensor, __FUNCTION__, " expects a pointer to place of ONNX tensor type."); onnx_tensor->set_name(new_name); } -void InputModelONNX::set_name_for_operation(Place::Ptr operation, const std::string& new_name) { - const auto onnx_operation = std::dynamic_pointer_cast(operation); +void InputModel::set_name_for_operation(ov::frontend::Place::Ptr operation, const std::string& new_name) { + const auto onnx_operation = std::dynamic_pointer_cast(operation); FRONT_END_GENERAL_CHECK(onnx_operation, __FUNCTION__, " expects a pointer to place of ONNX operation type."); onnx_operation->set_name(new_name); } -void InputModelONNX::free_name_for_operation(const std::string& name) { +void InputModel::free_name_for_operation(const std::string& name) { m_editor->clear_nodes_name(name); } -void InputModelONNX::set_name_for_dimension(Place::Ptr tensor, size_t shape_dim_index, const std::string& dim_name) { - const auto onnx_tensor = std::dynamic_pointer_cast(tensor); +void InputModel::set_name_for_dimension(ov::frontend::Place::Ptr tensor, + size_t shape_dim_index, + const std::string& dim_name) { + const auto onnx_tensor = std::dynamic_pointer_cast(tensor); FRONT_END_GENERAL_CHECK(onnx_tensor, __FUNCTION__, " expects a pointer to place of ONNX tensor type."); onnx_tensor->set_name_for_dimension(shape_dim_index, dim_name); } -void InputModelONNX::add_name_for_tensor(Place::Ptr, const std::string&) { +void InputModel::add_name_for_tensor(ov::frontend::Place::Ptr, const std::string&) { FRONT_END_THROW("Method add_name_for_tensor is not applicable for ONNX model. ONNX tensor has just one name."); } -void InputModelONNX::free_name_for_tensor(const std::string&) { +void InputModel::free_name_for_tensor(const std::string&) { FRONT_END_THROW("Method free_name_for_tensor is not applicable for ONNX model. ONNX tensor name is an identifier."); } -void InputModelONNX::set_partial_shape(Place::Ptr place, const ngraph::PartialShape& shape) { +void InputModel::set_partial_shape(ov::frontend::Place::Ptr place, const ngraph::PartialShape& shape) { std::map m; m[place->get_names()[0]] = shape; m_editor->set_input_shapes(m); } -ngraph::PartialShape InputModelONNX::get_partial_shape(Place::Ptr place) const { +ngraph::PartialShape InputModel::get_partial_shape(ov::frontend::Place::Ptr place) const { return m_editor->get_tensor_shape(place->get_names().at(0)); } -void InputModelONNX::set_element_type(Place::Ptr place, const ngraph::element::Type& type) { +void InputModel::set_element_type(ov::frontend::Place::Ptr place, const ngraph::element::Type& type) { std::map m; m[place->get_names()[0]] = type; m_editor->set_input_types(m); } -std::shared_ptr InputModelONNX::decode() { +std::shared_ptr InputModel::decode() { return m_editor->decode(); } -std::shared_ptr InputModelONNX::convert() { +std::shared_ptr InputModel::convert() { return m_editor->get_function(); } // Editor features -void InputModelONNX::override_all_outputs(const std::vector& outputs) { +void InputModel::override_all_outputs(const std::vector& outputs) { extract_subgraph({}, outputs); NGRAPH_CHECK(m_editor->model_outputs().size() == outputs.size(), "Unexpected number of outputs after override_all_outputs"); NGRAPH_CHECK(std::all_of(std::begin(outputs), std::end(outputs), - [](const Place::Ptr& place) { + [](const ov::frontend::Place::Ptr& place) { return place->is_output(); }), "Not all provided arguments of override_all_outputs are new outputs of the model"); } -void InputModelONNX::override_all_inputs(const std::vector& inputs) { +void InputModel::override_all_inputs(const std::vector& inputs) { const auto outputs_before_extraction = m_editor->model_outputs(); extract_subgraph({inputs}, {}); NGRAPH_CHECK(std::equal(std::begin(outputs_before_extraction), @@ -172,13 +171,14 @@ void InputModelONNX::override_all_inputs(const std::vector& inputs) "Unexpected number of inputs after override_all_inputs"); } -void InputModelONNX::extract_subgraph(const std::vector& inputs, const std::vector& outputs) { +void InputModel::extract_subgraph(const std::vector& inputs, + const std::vector& outputs) { std::vector onnx_inputs; onnx_inputs.reserve(inputs.size()); for (const auto& input : inputs) { - if (const auto input_port = std::dynamic_pointer_cast(input)) { + if (const auto input_port = std::dynamic_pointer_cast(input)) { onnx_inputs.push_back(input_port->get_input_edge()); - } else if (const auto tensor = std::dynamic_pointer_cast(input)) { + } else if (const auto tensor = std::dynamic_pointer_cast(input)) { auto name = tensor->get_names()[0]; const auto consumers = m_editor->find_output_consumers(name); std::transform(std::begin(consumers), @@ -187,7 +187,7 @@ void InputModelONNX::extract_subgraph(const std::vector& inputs, con [](const onnx_editor::InputEdge& edge) { return edge; }); - } else if (const auto op = std::dynamic_pointer_cast(input)) { + } else if (const auto op = std::dynamic_pointer_cast(input)) { const auto editor_node = op->get_editor_node(); const auto op_inputs = m_editor->get_input_ports(editor_node); int node_idx = m_editor->get_node_index(editor_node); @@ -204,14 +204,14 @@ void InputModelONNX::extract_subgraph(const std::vector& inputs, con std::vector onnx_outputs; onnx_outputs.reserve(outputs.size()); for (const auto& output : outputs) { - if (const auto output_port = std::dynamic_pointer_cast(output)) { + if (const auto output_port = std::dynamic_pointer_cast(output)) { onnx_outputs.push_back(output_port->get_output_edge()); - } else if (const auto tensor = std::dynamic_pointer_cast(output)) { + } else if (const auto tensor = std::dynamic_pointer_cast(output)) { const auto output_port = tensor->get_producing_port(); - const auto onnx_output_edge = std::dynamic_pointer_cast(output_port); + const auto onnx_output_edge = std::dynamic_pointer_cast(output_port); NGRAPH_CHECK(onnx_output_edge, "Non-onnx output place was passed as extraction subgraph argument"); onnx_outputs.push_back(onnx_output_edge->get_output_edge()); - } else if (const auto op = std::dynamic_pointer_cast(output)) { + } else if (const auto op = std::dynamic_pointer_cast(output)) { const auto editor_node = op->get_editor_node(); const auto op_outputs = m_editor->get_output_ports(editor_node); int node_idx = m_editor->get_node_index(editor_node); diff --git a/src/frontends/onnx/frontend/src/input_model.hpp b/src/frontends/onnx/frontend/src/input_model.hpp index a3875b2adba..f69ef4f4a52 100644 --- a/src/frontends/onnx/frontend/src/input_model.hpp +++ b/src/frontends/onnx/frontend/src/input_model.hpp @@ -4,63 +4,70 @@ #pragma once -#include #include #include +#include namespace ov { namespace frontend { -class InputModelONNX : public InputModel { +namespace onnx { + +class InputModel : public ov::frontend::InputModel { public: - InputModelONNX(const std::string& path, const std::shared_ptr& telemetry = {}); + InputModel(const std::string& path, const std::shared_ptr& telemetry = {}); #if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) - InputModelONNX(const std::wstring& path, const std::shared_ptr& telemetry = {}); + InputModel(const std::wstring& path, const std::shared_ptr& telemetry = {}); #endif - InputModelONNX(std::istream& model_stream, const std::shared_ptr& telemetry = {}); + InputModel(std::istream& model_stream, const std::shared_ptr& telemetry = {}); // The path can be required even if the model is passed as a stream because it is necessary // for ONNX external data feature - InputModelONNX(std::istream& model_stream, - const std::string& path, - const std::shared_ptr& telemetry = {}); + InputModel(std::istream& model_stream, + const std::string& path, + const std::shared_ptr& telemetry = {}); #ifdef OPENVINO_ENABLE_UNICODE_PATH_SUPPORT - InputModelONNX(std::istream& model_stream, - const std::wstring& path, - const std::shared_ptr& telemetry = {}); + InputModel(std::istream& model_stream, + const std::wstring& path, + const std::shared_ptr& telemetry = {}); #endif - std::vector get_inputs() const override; - std::vector get_outputs() const override; - Place::Ptr get_place_by_tensor_name(const std::string& tensor_name) const override; - Place::Ptr get_place_by_operation_name(const std::string& operation_name) const override; - Place::Ptr get_place_by_operation_name_and_input_port(const std::string& operation_name, - int input_port_index) override; - Place::Ptr get_place_by_operation_name_and_output_port(const std::string& operation_name, - int output_port_index) override; + std::vector get_inputs() const override; + std::vector get_outputs() const override; + ov::frontend::Place::Ptr get_place_by_tensor_name(const std::string& tensor_name) const override; + ov::frontend::Place::Ptr get_place_by_operation_name(const std::string& operation_name) const override; + ov::frontend::Place::Ptr get_place_by_operation_name_and_input_port(const std::string& operation_name, + int input_port_index) override; + ov::frontend::Place::Ptr get_place_by_operation_name_and_output_port(const std::string& operation_name, + int output_port_index) override; - void set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) override; - void set_name_for_operation(Place::Ptr operation, const std::string& new_name) override; + void set_name_for_tensor(ov::frontend::Place::Ptr tensor, const std::string& new_name) override; + void set_name_for_operation(ov::frontend::Place::Ptr operation, const std::string& new_name) override; void free_name_for_operation(const std::string& name) override; - void set_name_for_dimension(Place::Ptr place, size_t shape_dim_index, const std::string& dim_name) override; + void set_name_for_dimension(ov::frontend::Place::Ptr place, + size_t shape_dim_index, + const std::string& dim_name) override; /// \brief Not applicable for ONNX model. Throws immediately - void add_name_for_tensor(Place::Ptr tensor, const std::string& new_name) override; + void add_name_for_tensor(ov::frontend::Place::Ptr tensor, const std::string& new_name) override; /// \brief Not applicable for ONNX model. Throws immediately void free_name_for_tensor(const std::string& name) override; - void set_partial_shape(Place::Ptr place, const ngraph::PartialShape& shape) override; - ngraph::PartialShape get_partial_shape(Place::Ptr place) const override; - void set_element_type(Place::Ptr place, const ngraph::element::Type& type) override; + void set_partial_shape(ov::frontend::Place::Ptr place, const ngraph::PartialShape& shape) override; + ngraph::PartialShape get_partial_shape(ov::frontend::Place::Ptr place) const override; + void set_element_type(ov::frontend::Place::Ptr place, const ngraph::element::Type& type) override; std::shared_ptr decode(); std::shared_ptr convert(); // Editor features - void override_all_outputs(const std::vector& outputs) override; - void override_all_inputs(const std::vector& inputs) override; - void extract_subgraph(const std::vector& inputs, const std::vector& outputs) override; + void override_all_outputs(const std::vector& outputs) override; + void override_all_inputs(const std::vector& inputs) override; + void extract_subgraph(const std::vector& inputs, + const std::vector& outputs) override; private: std::shared_ptr m_editor; }; + +} // namespace onnx } // namespace frontend } // namespace ov diff --git a/src/frontends/onnx/frontend/src/onnx_framework_node.cpp b/src/frontends/onnx/frontend/src/onnx_framework_node.cpp index bac360586d3..22eb9b56299 100644 --- a/src/frontends/onnx/frontend/src/onnx_framework_node.cpp +++ b/src/frontends/onnx/frontend/src/onnx_framework_node.cpp @@ -21,10 +21,14 @@ namespace frontend { NGRAPH_RTTI_DEFINITION(ONNXFrameworkNode, "ONNXFrameworkNode", 1); std::shared_ptr ONNXFrameworkNode::clone_with_new_inputs(const OutputVector& inputs) const { - return std::make_shared(m_graph, m_node, inputs); + return std::make_shared(m_node, inputs); } NGRAPH_RTTI_DEFINITION(ONNXSubgraphFrameworkNode, "ONNXSubgraphFrameworkNode", 1); +std::shared_ptr ONNXSubgraphFrameworkNode::clone_with_new_inputs(const OutputVector& inputs) const { + return std::make_shared(m_node, m_functions, inputs); +} + } // namespace frontend } // namespace ngraph diff --git a/src/frontends/onnx/frontend/src/onnx_framework_node.hpp b/src/frontends/onnx/frontend/src/onnx_framework_node.hpp index 852a3f07b09..8e52dd3dd18 100644 --- a/src/frontends/onnx/frontend/src/onnx_framework_node.hpp +++ b/src/frontends/onnx/frontend/src/onnx_framework_node.hpp @@ -38,20 +38,16 @@ class ONNXFrameworkNode : public ov::op::util::FrameworkNode { public: NGRAPH_RTTI_DECLARATION; - ONNXFrameworkNode(std::shared_ptr graph, const onnx_import::Node& node) + ONNXFrameworkNode(const onnx_import::Node& node) : ov::op::util::FrameworkNode(node.get_ng_inputs(), node.get_outputs_size()), - m_node(node), - m_graph(graph) {} + m_node(node) {} - ONNXFrameworkNode(std::shared_ptr graph, - const onnx_import::Node& node, - const OutputVector& inputs) + ONNXFrameworkNode(const onnx_import::Node& node, const OutputVector& inputs) : ov::op::util::FrameworkNode(inputs, node.get_outputs_size()), - m_node(node), - m_graph(graph) {} + m_node(node) {} - OutputVector get_ng_nodes() const { - OutputVector ng_nodes{m_graph->make_ng_nodes(m_node)}; + OutputVector get_ng_nodes(const std::shared_ptr& graph) const { + OutputVector ng_nodes{graph->make_ng_nodes(m_node)}; if (ng_nodes.size() > get_output_size()) { ng_nodes.resize(get_output_size()); } @@ -71,35 +67,31 @@ public: protected: onnx_import::Node m_node; - -private: - std::shared_ptr m_graph; }; class ONNXSubgraphFrameworkNode : public ONNXFrameworkNode { public: NGRAPH_RTTI_DECLARATION; - ONNXSubgraphFrameworkNode(std::shared_ptr graph, - const onnx_import::Node& node, + ONNXSubgraphFrameworkNode(const onnx_import::Node& node, + const std::vector>& functions, const OutputVector& inputs) - : ONNXFrameworkNode(graph, node, inputs) {} + : ONNXFrameworkNode(node, inputs), + m_functions(functions) {} void infer_inputs_from_parent() { for (auto& subgraph : m_node.get_subgraphs()) subgraph.second->infer_inputs_from_parent(); } - std::vector> get_subgraph_functions() const { - std::vector> ret; - for (const auto& kv : m_node.get_subgraphs()) { - auto& subgraph = kv.second; - ret.push_back(std::make_shared(subgraph->get_ng_outputs(), - subgraph->get_ng_parameters(), - subgraph->get_name())); - } - return ret; + const std::vector>& get_subgraph_functions() const { + return m_functions; } + + virtual std::shared_ptr clone_with_new_inputs(const OutputVector& inputs) const override; + +private: + std::vector> m_functions; }; } // namespace frontend diff --git a/src/frontends/onnx/frontend/src/op/softmax.cpp b/src/frontends/onnx/frontend/src/op/softmax.cpp index 3aa517f3c12..ce609a52e44 100644 --- a/src/frontends/onnx/frontend/src/op/softmax.cpp +++ b/src/frontends/onnx/frontend/src/op/softmax.cpp @@ -37,17 +37,8 @@ OutputVector softmax(const Node& node) { result = default_opset::Constant::create(data.get_element_type(), Shape{}, {1}); break; } - case 1: { - // checks if the axis belongs to the allowed values set (-1 and 0 for 1D) - ngraph::normalize_axis(node.get_description(), axis, data.get_partial_shape().rank()); - result = std::make_shared(data, 0); - break; - } default: { - const auto normalized_axis = - ngraph::normalize_axis(node.get_description(), axis, data.get_partial_shape().rank()); - - result = onnx_softmax(data, normalized_axis); + result = onnx_softmax(data, axis); break; } } @@ -69,17 +60,8 @@ OutputVector softmax(const Node& node) { result = default_opset::Constant::create(data.get_element_type(), Shape{}, {1}); break; } - case 1: { - // checks if the axis belongs to the allowed values set (-1 and 0 for 1D) - ngraph::normalize_axis(node.get_description(), axis, data.get_partial_shape().rank()); - result = std::make_shared(data, 0); - break; - } default: { - const auto normalized_axis = - ngraph::normalize_axis(node.get_description(), axis, data.get_partial_shape().rank()); - - result = std::make_shared(data, normalized_axis); + result = std::make_shared(data, axis); break; } } @@ -92,9 +74,8 @@ OutputVector softmax(const Node& node) { const auto data = node.get_ng_inputs().at(0); const auto axis = node.get_attribute_value("axis", -1); - const auto normalized_axis = ngraph::normalize_axis(node.get_description(), axis, data.get_partial_shape().rank()); - return {std::make_shared(data, normalized_axis)}; + return {std::make_shared(data, axis)}; } } // namespace set_13 } // namespace op diff --git a/src/frontends/onnx/frontend/src/place.cpp b/src/frontends/onnx/frontend/src/place.cpp index 5c2c25fbb1c..6e73fd450ac 100644 --- a/src/frontends/onnx/frontend/src/place.cpp +++ b/src/frontends/onnx/frontend/src/place.cpp @@ -4,160 +4,157 @@ #include "place.hpp" -#include +#include using namespace ov; -using namespace ov::frontend; +using namespace ov::frontend::onnx; -PlaceInputEdgeONNX::PlaceInputEdgeONNX(const onnx_editor::InputEdge& edge, - std::shared_ptr editor) +PlaceInputEdge::PlaceInputEdge(const onnx_editor::InputEdge& edge, std::shared_ptr editor) : m_edge{edge}, m_editor{std::move(editor)} {} -PlaceInputEdgeONNX::PlaceInputEdgeONNX(onnx_editor::InputEdge&& edge, - std::shared_ptr editor) +PlaceInputEdge::PlaceInputEdge(onnx_editor::InputEdge&& edge, std::shared_ptr editor) : m_edge{std::move(edge)}, m_editor{std::move(editor)} {} -onnx_editor::InputEdge PlaceInputEdgeONNX::get_input_edge() const { +onnx_editor::InputEdge PlaceInputEdge::get_input_edge() const { return m_edge; } -bool PlaceInputEdgeONNX::is_input() const { +bool PlaceInputEdge::is_input() const { return m_editor->is_input(m_edge); } -bool PlaceInputEdgeONNX::is_output() const { +bool PlaceInputEdge::is_output() const { return false; } -bool PlaceInputEdgeONNX::is_equal(Place::Ptr another) const { - if (const auto in_edge = std::dynamic_pointer_cast(another)) { +bool PlaceInputEdge::is_equal(Place::Ptr another) const { + if (const auto in_edge = std::dynamic_pointer_cast(another)) { const auto& editor_edge = in_edge->get_input_edge(); return (editor_edge.m_node_idx == m_edge.m_node_idx) && (editor_edge.m_port_idx == m_edge.m_port_idx); } return false; } -bool PlaceInputEdgeONNX::is_equal_data(Place::Ptr another) const { +bool PlaceInputEdge::is_equal_data(Place::Ptr another) const { return get_source_tensor()->is_equal_data(another); } -Place::Ptr PlaceInputEdgeONNX::get_source_tensor() const { - return std::make_shared(m_editor->get_source_tensor_name(m_edge), m_editor); +ov::frontend::Place::Ptr PlaceInputEdge::get_source_tensor() const { + return std::make_shared(m_editor->get_source_tensor_name(m_edge), m_editor); } -std::vector PlaceInputEdgeONNX::get_consuming_operations() const { - return {std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor)}; +std::vector PlaceInputEdge::get_consuming_operations() const { + return {std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor)}; } -Place::Ptr PlaceInputEdgeONNX::get_producing_operation() const { +ov::frontend::Place::Ptr PlaceInputEdge::get_producing_operation() const { return get_source_tensor()->get_producing_operation(); } -Place::Ptr PlaceInputEdgeONNX::get_producing_port() const { +ov::frontend::Place::Ptr PlaceInputEdge::get_producing_port() const { return get_source_tensor()->get_producing_port(); } -PlaceOutputEdgeONNX::PlaceOutputEdgeONNX(const onnx_editor::OutputEdge& edge, - std::shared_ptr editor) +PlaceOutputEdge::PlaceOutputEdge(const onnx_editor::OutputEdge& edge, + std::shared_ptr editor) : m_edge{edge}, m_editor{std::move(editor)} {} -PlaceOutputEdgeONNX::PlaceOutputEdgeONNX(onnx_editor::OutputEdge&& edge, - std::shared_ptr editor) +PlaceOutputEdge::PlaceOutputEdge(onnx_editor::OutputEdge&& edge, std::shared_ptr editor) : m_edge{std::move(edge)}, m_editor{std::move(editor)} {} -onnx_editor::OutputEdge PlaceOutputEdgeONNX::get_output_edge() const { +onnx_editor::OutputEdge PlaceOutputEdge::get_output_edge() const { return m_edge; } -bool PlaceOutputEdgeONNX::is_input() const { +bool PlaceOutputEdge::is_input() const { return false; } -bool PlaceOutputEdgeONNX::is_output() const { +bool PlaceOutputEdge::is_output() const { return m_editor->is_output(m_edge); } -bool PlaceOutputEdgeONNX::is_equal(Place::Ptr another) const { - if (const auto out_edge = std::dynamic_pointer_cast(another)) { +bool PlaceOutputEdge::is_equal(Place::Ptr another) const { + if (const auto out_edge = std::dynamic_pointer_cast(another)) { const auto& editor_edge = out_edge->get_output_edge(); return (editor_edge.m_node_idx == m_edge.m_node_idx) && (editor_edge.m_port_idx == m_edge.m_port_idx); } return false; } -bool PlaceOutputEdgeONNX::is_equal_data(Place::Ptr another) const { +bool PlaceOutputEdge::is_equal_data(Place::Ptr another) const { return get_target_tensor()->is_equal_data(another); } -Place::Ptr PlaceOutputEdgeONNX::get_target_tensor() const { - return std::make_shared(m_editor->get_target_tensor_name(m_edge), m_editor); +ov::frontend::Place::Ptr PlaceOutputEdge::get_target_tensor() const { + return std::make_shared(m_editor->get_target_tensor_name(m_edge), m_editor); } -std::vector PlaceOutputEdgeONNX::get_consuming_ports() const { +std::vector PlaceOutputEdge::get_consuming_ports() const { return get_target_tensor()->get_consuming_ports(); } -Place::Ptr PlaceOutputEdgeONNX::get_producing_operation() const { - return std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor); +ov::frontend::Place::Ptr PlaceOutputEdge::get_producing_operation() const { + return std::make_shared(onnx_editor::EditorNode{m_edge.m_node_idx}, m_editor); } -std::vector PlaceOutputEdgeONNX::get_consuming_operations() const { +std::vector PlaceOutputEdge::get_consuming_operations() const { return get_target_tensor()->get_consuming_operations(); } -PlaceTensorONNX::PlaceTensorONNX(const std::string& name, std::shared_ptr editor) +PlaceTensor::PlaceTensor(const std::string& name, std::shared_ptr editor) : m_name{name}, m_editor{std::move(editor)} {} -PlaceTensorONNX::PlaceTensorONNX(std::string&& name, std::shared_ptr editor) +PlaceTensor::PlaceTensor(std::string&& name, std::shared_ptr editor) : m_name{std::move(name)}, m_editor{std::move(editor)} {} -std::vector PlaceTensorONNX::get_names() const { +std::vector PlaceTensor::get_names() const { return {m_name}; } -Place::Ptr PlaceTensorONNX::get_producing_port() const { +ov::frontend::Place::Ptr PlaceTensor::get_producing_port() const { FRONT_END_GENERAL_CHECK(!is_input(), "Tensor: " + m_name + " is an input of the model and doesn't have producing port."); - return std::make_shared(m_editor->find_output_edge(m_name), m_editor); + return std::make_shared(m_editor->find_output_edge(m_name), m_editor); } -std::vector PlaceTensorONNX::get_consuming_ports() const { - std::vector ret; +std::vector PlaceTensor::get_consuming_ports() const { + std::vector ret; auto edges = m_editor->find_output_consumers(m_name); std::transform(edges.begin(), edges.end(), std::back_inserter(ret), [this](const onnx_editor::InputEdge& edge) { - return std::make_shared(edge, this->m_editor); + return std::make_shared(edge, this->m_editor); }); return ret; } -Place::Ptr PlaceTensorONNX::get_producing_operation() const { +ov::frontend::Place::Ptr PlaceTensor::get_producing_operation() const { return get_producing_port()->get_producing_operation(); } -bool PlaceTensorONNX::is_input() const { +bool PlaceTensor::is_input() const { const auto inputs = m_editor->model_inputs(); return std::find(std::begin(inputs), std::end(inputs), m_name) != std::end(inputs); } -bool PlaceTensorONNX::is_output() const { +bool PlaceTensor::is_output() const { const auto outputs = m_editor->model_outputs(); return std::find(std::begin(outputs), std::end(outputs), m_name) != std::end(outputs); } -bool PlaceTensorONNX::is_equal(Place::Ptr another) const { - if (const auto tensor = std::dynamic_pointer_cast(another)) { +bool PlaceTensor::is_equal(Place::Ptr another) const { + if (const auto tensor = std::dynamic_pointer_cast(another)) { return m_name == tensor->get_names().at(0); } return false; } -bool PlaceTensorONNX::is_equal_data(Place::Ptr another) const { +bool PlaceTensor::is_equal_data(Place::Ptr another) const { const auto consuming_ports = get_consuming_ports(); const auto eq_to_consuming_port = [&consuming_ports](const Ptr& another) { return std::any_of(consuming_ports.begin(), consuming_ports.end(), [&another](const Ptr& place) { @@ -168,9 +165,9 @@ bool PlaceTensorONNX::is_equal_data(Place::Ptr another) const { eq_to_consuming_port(another); } -std::vector PlaceTensorONNX::get_consuming_operations() const { - std::vector consuming_ports = get_consuming_ports(); - std::vector consuming_ops; +std::vector PlaceTensor::get_consuming_operations() const { + std::vector consuming_ports = get_consuming_ports(); + std::vector consuming_ops; std::transform(std::begin(consuming_ports), std::end(consuming_ports), std::back_inserter(consuming_ops), @@ -181,87 +178,86 @@ std::vector PlaceTensorONNX::get_consuming_operations() const { return consuming_ops; } -void PlaceTensorONNX::set_name(const std::string& new_name) { +void PlaceTensor::set_name(const std::string& new_name) { if (m_name == new_name) return; m_editor->set_tensor_name(m_name, new_name); m_name = new_name; } -void PlaceTensorONNX::set_name_for_dimension(size_t shape_dim_index, const std::string& dim_name) { +void PlaceTensor::set_name_for_dimension(size_t shape_dim_index, const std::string& dim_name) { m_editor->set_name_for_dimension(m_name, shape_dim_index, dim_name); } -PlaceOpONNX::PlaceOpONNX(const onnx_editor::EditorNode& node, std::shared_ptr editor) +PlaceOp::PlaceOp(const onnx_editor::EditorNode& node, std::shared_ptr editor) : m_node{node}, m_editor{std::move(editor)} {} -PlaceOpONNX::PlaceOpONNX(onnx_editor::EditorNode&& node, std::shared_ptr editor) +PlaceOp::PlaceOp(onnx_editor::EditorNode&& node, std::shared_ptr editor) : m_node{std::move(node)}, m_editor{std::move(editor)} {} -std::vector PlaceOpONNX::get_names() const { +std::vector PlaceOp::get_names() const { return {m_node.m_node_name}; } -const onnx_editor::EditorNode& PlaceOpONNX::get_editor_node() const { +const onnx_editor::EditorNode& PlaceOp::get_editor_node() const { return m_node; } -Place::Ptr PlaceOpONNX::get_output_port() const { +ov::frontend::Place::Ptr PlaceOp::get_output_port() const { if (m_editor->get_output_ports(m_node).size() == 1) { return get_output_port(0); } return nullptr; } -Place::Ptr PlaceOpONNX::get_output_port(int output_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_output_port(int output_port_index) const { if (output_port_index < m_editor->get_output_ports(m_node).size()) { - return std::make_shared( + return std::make_shared( m_editor->find_output_edge(m_node, onnx_editor::EditorOutput{output_port_index}), m_editor); } return nullptr; } -Place::Ptr PlaceOpONNX::get_output_port(const std::string& output_port_name) const { +ov::frontend::Place::Ptr PlaceOp::get_output_port(const std::string& output_port_name) const { const auto output_ports = m_editor->get_output_ports(m_node); if (std::count(std::begin(output_ports), std::end(output_ports), output_port_name) == 1) { - return std::make_shared( + return std::make_shared( m_editor->find_output_edge(m_node, onnx_editor::EditorOutput{output_port_name}), m_editor); } return nullptr; } -Place::Ptr PlaceOpONNX::get_input_port() const { +ov::frontend::Place::Ptr PlaceOp::get_input_port() const { if (m_editor->get_input_ports(m_node).size() == 1) { return get_input_port(0); } return nullptr; } -Place::Ptr PlaceOpONNX::get_input_port(int input_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_input_port(int input_port_index) const { if (input_port_index < m_editor->get_input_ports(m_node).size()) { - return std::make_shared( + return std::make_shared( m_editor->find_input_edge(m_node, onnx_editor::EditorInput{input_port_index}), m_editor); } return nullptr; } -Place::Ptr PlaceOpONNX::get_input_port(const std::string& input_name) const { +ov::frontend::Place::Ptr PlaceOp::get_input_port(const std::string& input_name) const { const auto input_ports = m_editor->get_input_ports(m_node); if (std::count(std::begin(input_ports), std::end(input_ports), input_name) == 1) { - return std::make_shared( - m_editor->find_input_edge(m_node, onnx_editor::EditorInput{input_name}), - m_editor); + return std::make_shared(m_editor->find_input_edge(m_node, onnx_editor::EditorInput{input_name}), + m_editor); } return nullptr; } -std::vector PlaceOpONNX::get_consuming_ports() const { - std::vector consuming_ports; +std::vector PlaceOp::get_consuming_ports() const { + std::vector consuming_ports; const auto out_ports_size = m_editor->get_output_ports(m_node).size(); for (int out_idx = 0; out_idx < out_ports_size; ++out_idx) { auto consuming_ops_out = get_output_port(out_idx)->get_consuming_ports(); @@ -271,12 +267,12 @@ std::vector PlaceOpONNX::get_consuming_ports() const { } namespace { -std::vector get_consuming_ops(std::vector input_ports) { - std::vector consuming_ops; +std::vector get_consuming_ops(std::vector input_ports) { + std::vector consuming_ops; std::transform(std::begin(input_ports), std::end(input_ports), std::back_inserter(consuming_ops), - [](const Place::Ptr place) { + [](const ov::frontend::Place::Ptr place) { return place->get_consuming_operations().at(0); }); @@ -284,22 +280,22 @@ std::vector get_consuming_ops(std::vector input_ports) { } } // namespace -std::vector PlaceOpONNX::get_consuming_operations() const { - std::vector consuming_ports = get_consuming_ports(); +std::vector PlaceOp::get_consuming_operations() const { + std::vector consuming_ports = get_consuming_ports(); return get_consuming_ops(consuming_ports); } -std::vector PlaceOpONNX::get_consuming_operations(int output_port_index) const { - std::vector consuming_ports = get_output_port(output_port_index)->get_consuming_ports(); +std::vector PlaceOp::get_consuming_operations(int output_port_index) const { + std::vector consuming_ports = get_output_port(output_port_index)->get_consuming_ports(); return get_consuming_ops(consuming_ports); } -std::vector PlaceOpONNX::get_consuming_operations(const std::string& output_port_name) const { - std::vector consuming_ports = get_output_port(output_port_name)->get_consuming_ports(); +std::vector PlaceOp::get_consuming_operations(const std::string& output_port_name) const { + std::vector consuming_ports = get_output_port(output_port_name)->get_consuming_ports(); return get_consuming_ops(consuming_ports); } -Place::Ptr PlaceOpONNX::get_producing_operation() const { +ov::frontend::Place::Ptr PlaceOp::get_producing_operation() const { const auto input_port = get_input_port(); if (input_port != nullptr) { return input_port->get_producing_operation(); @@ -307,7 +303,7 @@ Place::Ptr PlaceOpONNX::get_producing_operation() const { return nullptr; } -Place::Ptr PlaceOpONNX::get_producing_operation(int input_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_producing_operation(int input_port_index) const { const auto input_port = get_input_port(input_port_index); if (input_port != nullptr) { return input_port->get_producing_operation(); @@ -315,7 +311,7 @@ Place::Ptr PlaceOpONNX::get_producing_operation(int input_port_index) const { return nullptr; } -Place::Ptr PlaceOpONNX::get_producing_operation(const std::string& input_port_name) const { +ov::frontend::Place::Ptr PlaceOp::get_producing_operation(const std::string& input_port_name) const { const auto input_port = get_input_port(input_port_name); if (input_port != nullptr) { return input_port->get_producing_operation(); @@ -323,8 +319,8 @@ Place::Ptr PlaceOpONNX::get_producing_operation(const std::string& input_port_na return nullptr; } -bool PlaceOpONNX::is_equal(Place::Ptr another) const { - if (const auto place_op = std::dynamic_pointer_cast(another)) { +bool PlaceOp::is_equal(Place::Ptr another) const { + if (const auto place_op = std::dynamic_pointer_cast(another)) { const auto& another_node = place_op->get_editor_node(); if (m_editor->is_correct_and_unambiguous_node(m_node) || m_editor->is_correct_and_unambiguous_node(another_node)) { @@ -334,7 +330,7 @@ bool PlaceOpONNX::is_equal(Place::Ptr another) const { return false; } -Place::Ptr PlaceOpONNX::get_target_tensor() const { +ov::frontend::Place::Ptr PlaceOp::get_target_tensor() const { const auto output_port = get_output_port(); if (output_port != nullptr) { return output_port->get_target_tensor(); @@ -342,7 +338,7 @@ Place::Ptr PlaceOpONNX::get_target_tensor() const { return nullptr; } -Place::Ptr PlaceOpONNX::get_target_tensor(int output_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_target_tensor(int output_port_index) const { const auto output_port = get_output_port(output_port_index); if (output_port != nullptr) { return output_port->get_target_tensor(); @@ -350,7 +346,7 @@ Place::Ptr PlaceOpONNX::get_target_tensor(int output_port_index) const { return nullptr; } -Place::Ptr PlaceOpONNX::get_target_tensor(const std::string& output_name) const { +ov::frontend::Place::Ptr PlaceOp::get_target_tensor(const std::string& output_name) const { const auto output_port = get_output_port(output_name); if (output_port != nullptr) { return output_port->get_target_tensor(); @@ -358,7 +354,7 @@ Place::Ptr PlaceOpONNX::get_target_tensor(const std::string& output_name) const return nullptr; } -Place::Ptr PlaceOpONNX::get_source_tensor() const { +ov::frontend::Place::Ptr PlaceOp::get_source_tensor() const { const auto input_port = get_input_port(); if (input_port != nullptr) { return input_port->get_source_tensor(); @@ -366,7 +362,7 @@ Place::Ptr PlaceOpONNX::get_source_tensor() const { return nullptr; } -Place::Ptr PlaceOpONNX::get_source_tensor(int input_port_index) const { +ov::frontend::Place::Ptr PlaceOp::get_source_tensor(int input_port_index) const { const auto input_port = get_input_port(input_port_index); if (input_port != nullptr) { return input_port->get_source_tensor(); @@ -374,7 +370,7 @@ Place::Ptr PlaceOpONNX::get_source_tensor(int input_port_index) const { return nullptr; } -Place::Ptr PlaceOpONNX::get_source_tensor(const std::string& input_name) const { +ov::frontend::Place::Ptr PlaceOp::get_source_tensor(const std::string& input_name) const { const auto input_port = get_input_port(input_name); if (input_port != nullptr) { return input_port->get_source_tensor(); @@ -382,15 +378,15 @@ Place::Ptr PlaceOpONNX::get_source_tensor(const std::string& input_name) const { return nullptr; } -bool PlaceOpONNX::is_input() const { +bool PlaceOp::is_input() const { return false; } -bool PlaceOpONNX::is_output() const { +bool PlaceOp::is_output() const { return false; } -void PlaceOpONNX::set_name(const std::string& new_name) { +void PlaceOp::set_name(const std::string& new_name) { m_editor->set_node_name(m_node, new_name); m_node.m_node_name = new_name; } diff --git a/src/frontends/onnx/frontend/src/place.hpp b/src/frontends/onnx/frontend/src/place.hpp index 063a18867d8..02bd737e16f 100644 --- a/src/frontends/onnx/frontend/src/place.hpp +++ b/src/frontends/onnx/frontend/src/place.hpp @@ -4,17 +4,19 @@ #pragma once -#include #include #include +#include #include namespace ov { namespace frontend { -class PlaceInputEdgeONNX : public Place { +namespace onnx { + +class PlaceInputEdge : public Place { public: - PlaceInputEdgeONNX(const onnx_editor::InputEdge& edge, std::shared_ptr editor); - PlaceInputEdgeONNX(onnx_editor::InputEdge&& edge, std::shared_ptr editor); + PlaceInputEdge(const onnx_editor::InputEdge& edge, std::shared_ptr editor); + PlaceInputEdge(onnx_editor::InputEdge&& edge, std::shared_ptr editor); // internal usage onnx_editor::InputEdge get_input_edge() const; @@ -34,10 +36,10 @@ private: const std::shared_ptr m_editor; }; -class PlaceOutputEdgeONNX : public Place { +class PlaceOutputEdge : public Place { public: - PlaceOutputEdgeONNX(const onnx_editor::OutputEdge& edge, std::shared_ptr editor); - PlaceOutputEdgeONNX(onnx_editor::OutputEdge&& edge, std::shared_ptr editor); + PlaceOutputEdge(const onnx_editor::OutputEdge& edge, std::shared_ptr editor); + PlaceOutputEdge(onnx_editor::OutputEdge&& edge, std::shared_ptr editor); // internal usage onnx_editor::OutputEdge get_output_edge() const; @@ -57,10 +59,10 @@ private: std::shared_ptr m_editor; }; -class PlaceTensorONNX : public Place { +class PlaceTensor : public Place { public: - PlaceTensorONNX(const std::string& name, std::shared_ptr editor); - PlaceTensorONNX(std::string&& name, std::shared_ptr editor); + PlaceTensor(const std::string& name, std::shared_ptr editor); + PlaceTensor(std::string&& name, std::shared_ptr editor); // external usage std::vector get_names() const override; @@ -81,10 +83,10 @@ private: std::shared_ptr m_editor; }; -class PlaceOpONNX : public Place { +class PlaceOp : public Place { public: - PlaceOpONNX(const onnx_editor::EditorNode& node, std::shared_ptr editor); - PlaceOpONNX(onnx_editor::EditorNode&& node, std::shared_ptr editor); + PlaceOp(const onnx_editor::EditorNode& node, std::shared_ptr editor); + PlaceOp(onnx_editor::EditorNode&& node, std::shared_ptr editor); std::vector get_names() const override; // internal usage @@ -125,5 +127,7 @@ private: onnx_editor::EditorNode m_node; std::shared_ptr m_editor; }; + +} // namespace onnx } // namespace frontend } // namespace ov diff --git a/src/frontends/onnx/frontend/src/utils/onnx_internal.cpp b/src/frontends/onnx/frontend/src/utils/onnx_internal.cpp index 930c8fab619..aff727c9fa8 100644 --- a/src/frontends/onnx/frontend/src/utils/onnx_internal.cpp +++ b/src/frontends/onnx/frontend/src/utils/onnx_internal.cpp @@ -60,6 +60,12 @@ void apply_transformations(ONNX_NAMESPACE::ModelProto& model_proto, const std::s } // namespace void convert_decoded_function(std::shared_ptr function) { + auto& rt_info = function->get_rt_info(); + auto it = rt_info.find(ONNX_GRAPH_RT_ATTRIBUTE); + OPENVINO_ASSERT(it != rt_info.end(), + "Could not find '" + std::string(ONNX_GRAPH_RT_ATTRIBUTE) + + "' attribute in decoded model. Model probably wasn't created by FrontEnd::decode function."); + auto onnx_graph = it->second.as>(); for (const auto& node : function->get_ordered_ops()) { if (auto raw_node = std::dynamic_pointer_cast(node)) { if (auto subgraph_node = std::dynamic_pointer_cast(node)) { @@ -68,7 +74,7 @@ void convert_decoded_function(std::shared_ptr function) { convert_decoded_function(function); } } - auto ng_nodes = raw_node->get_ng_nodes(); + auto ng_nodes = raw_node->get_ng_nodes(onnx_graph); replace_node(raw_node, ng_nodes); } else { // Have to revalidate node because new intpus can affect shape/type @@ -76,6 +82,7 @@ void convert_decoded_function(std::shared_ptr function) { node->revalidate_and_infer_types(); } } + rt_info.erase(it); detail::remove_dangling_parameters(function); detail::remove_dangling_results(function); } diff --git a/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp b/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp index 9813e82fa4b..dba12e3b2c6 100644 --- a/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp +++ b/src/frontends/onnx/frontend/src/utils/onnx_internal.hpp @@ -7,8 +7,8 @@ #include #include -#include "common/telemetry_extension.hpp" #include "ngraph/function.hpp" +#include "openvino/frontend/telemetry_extension.hpp" namespace ONNX_NAMESPACE { class ModelProto; diff --git a/src/frontends/paddlepaddle/CMakeLists.txt b/src/frontends/paddlepaddle/CMakeLists.txt index b3d46d67d1a..d6c5e4999f5 100644 --- a/src/frontends/paddlepaddle/CMakeLists.txt +++ b/src/frontends/paddlepaddle/CMakeLists.txt @@ -2,8 +2,8 @@ # SPDX-License-Identifier: Apache-2.0 # +# TODO: Add LINKABLE_FRONTEND option when tensorflow frontend directory is moved to openvino folder ov_add_frontend(NAME paddlepaddle - LINKABLE_FRONTEND PROTOBUF_LITE FILEDESCRIPTION "FrontEnd to load and convert PaddlePaddle file format" LINK_LIBRARIES inference_engine_transformations) diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp index 2b10a622ff7..0cabd02cd2b 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/frontend.hpp @@ -4,8 +4,8 @@ #pragma once -#include -#include +#include +#include #include "exceptions.hpp" #include "model.hpp" diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp index 8cc63a5540a..ba8659e04b4 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/model.hpp @@ -4,8 +4,8 @@ #pragma once -#include -#include +#include +#include #include "paddlepaddle_frontend/utility.hpp" diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp index e41e39564db..d99a9db6f4d 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/place.hpp @@ -4,9 +4,9 @@ #pragma once -#include +#include -#include "paddlepaddle_frontend/exceptions.hpp" +#include "exceptions.hpp" namespace paddle { namespace framework { diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp index 8d61af08ff6..a9c273cb392 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp +++ b/src/frontends/paddlepaddle/include/paddlepaddle_frontend/utility.hpp @@ -4,7 +4,7 @@ #pragma once -#include +#include #ifdef OPENVINO_STATIC_LIBRARY # define PDPD_API diff --git a/src/frontends/paddlepaddle/src/exceptions.cpp b/src/frontends/paddlepaddle/src/exception.cpp similarity index 90% rename from src/frontends/paddlepaddle/src/exceptions.cpp rename to src/frontends/paddlepaddle/src/exception.cpp index 0d172c6f4b5..ddd097ba5ef 100644 --- a/src/frontends/paddlepaddle/src/exceptions.cpp +++ b/src/frontends/paddlepaddle/src/exception.cpp @@ -2,8 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "paddlepaddle_frontend/exceptions.hpp" - +#include "exceptions.hpp" #include "node_context.hpp" namespace ov { diff --git a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/exceptions.hpp b/src/frontends/paddlepaddle/src/exceptions.hpp similarity index 96% rename from src/frontends/paddlepaddle/include/paddlepaddle_frontend/exceptions.hpp rename to src/frontends/paddlepaddle/src/exceptions.hpp index 2501ffafa35..78ce6937d83 100644 --- a/src/frontends/paddlepaddle/include/paddlepaddle_frontend/exceptions.hpp +++ b/src/frontends/paddlepaddle/src/exceptions.hpp @@ -4,7 +4,7 @@ #pragma once -#include +#include namespace ov { namespace frontend { diff --git a/src/frontends/paddlepaddle/src/frontend.cpp b/src/frontends/paddlepaddle/src/frontend.cpp index b9df7dce3a1..a552dcaa06a 100644 --- a/src/frontends/paddlepaddle/src/frontend.cpp +++ b/src/frontends/paddlepaddle/src/frontend.cpp @@ -10,11 +10,11 @@ #include #include "decoder.hpp" +#include "exceptions.hpp" #include "framework.pb.h" #include "node_context.hpp" #include "op_table.hpp" #include "openvino/opsets/opset7.hpp" -#include "paddlepaddle_frontend/exceptions.hpp" #include "paddlepaddle_frontend/model.hpp" #include "paddlepaddle_frontend/place.hpp" #include "pdpd_fw_node.hpp" diff --git a/src/frontends/paddlepaddle/src/model.cpp b/src/frontends/paddlepaddle/src/model.cpp index e089e836048..48ccef9643e 100644 --- a/src/frontends/paddlepaddle/src/model.cpp +++ b/src/frontends/paddlepaddle/src/model.cpp @@ -8,10 +8,10 @@ #include #include "decoder.hpp" +#include "exceptions.hpp" #include "framework.pb.h" #include "node_context.hpp" #include "openvino/opsets/opset7.hpp" -#include "paddlepaddle_frontend/exceptions.hpp" #include "paddlepaddle_frontend/place.hpp" #include "pdpd_utils.hpp" diff --git a/src/frontends/paddlepaddle/src/node_context.hpp b/src/frontends/paddlepaddle/src/node_context.hpp index 8b363d1f6ba..6dfe727f6ee 100644 --- a/src/frontends/paddlepaddle/src/node_context.hpp +++ b/src/frontends/paddlepaddle/src/node_context.hpp @@ -3,9 +3,9 @@ // #pragma once +#include "exceptions.hpp" #include "ngraph/compatibility.hpp" #include "openvino/core/any.hpp" -#include "paddlepaddle_frontend/exceptions.hpp" #include "paddlepaddle_frontend/utility.hpp" namespace ov { diff --git a/src/frontends/paddlepaddle/src/pdpd_utils.hpp b/src/frontends/paddlepaddle/src/pdpd_utils.hpp index 6f98dcd16db..5fcaaa6c188 100644 --- a/src/frontends/paddlepaddle/src/pdpd_utils.hpp +++ b/src/frontends/paddlepaddle/src/pdpd_utils.hpp @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend_exceptions.hpp" +#include "openvino/frontend/exception.hpp" #include "openvino/opsets/opset6.hpp" namespace ov { diff --git a/src/frontends/tensorflow/CMakeLists.txt b/src/frontends/tensorflow/CMakeLists.txt index 1e049c6d66d..b285b4ed459 100644 --- a/src/frontends/tensorflow/CMakeLists.txt +++ b/src/frontends/tensorflow/CMakeLists.txt @@ -2,8 +2,8 @@ # SPDX-License-Identifier: Apache-2.0 # +# TODO: Add LINKABLE_FRONTEND option when tensorflow frontend directory is moved to openvino folder ov_add_frontend(NAME tensorflow - LINKABLE_FRONTEND SKIP_INSTALL FILEDESCRIPTION "FrontEnd to load and convert TensorFlow file format" LINK_LIBRARIES openvino::util) diff --git a/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp b/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp index 14c8ea8922c..8c53ecb4a9d 100644 --- a/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp +++ b/src/frontends/tensorflow/include/tensorflow_frontend/frontend.hpp @@ -7,11 +7,11 @@ #include #include -#include "common/frontend.hpp" -#include "common/input_model.hpp" -#include "common/telemetry_extension.hpp" #include "openvino/core/any.hpp" #include "openvino/core/node_vector.hpp" +#include "openvino/frontend/frontend.hpp" +#include "openvino/frontend/input_model.hpp" +#include "openvino/frontend/telemetry_extension.hpp" #include "tensorflow_frontend/utility.hpp" namespace ov { diff --git a/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp b/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp index 2e6c3abf6b2..1990785fc30 100644 --- a/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp +++ b/src/frontends/tensorflow/include/tensorflow_frontend/utility.hpp @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend_exceptions.hpp" +#include "openvino/frontend/exception.hpp" #ifdef OPENVINO_STATIC_LIBRARY # define TF_API diff --git a/src/frontends/tensorflow/src/exceptions.hpp b/src/frontends/tensorflow/src/exceptions.hpp index 0a72e27ad7e..d43995a765d 100644 --- a/src/frontends/tensorflow/src/exceptions.hpp +++ b/src/frontends/tensorflow/src/exceptions.hpp @@ -3,8 +3,7 @@ // #pragma once -#include "common/frontend_exceptions.hpp" -#include "openvino/core/node.hpp" +#include "openvino/frontend/exception.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/tensorflow/src/model.cpp b/src/frontends/tensorflow/src/model.cpp index e3e1aa76531..3fc273d38cd 100644 --- a/src/frontends/tensorflow/src/model.cpp +++ b/src/frontends/tensorflow/src/model.cpp @@ -7,8 +7,8 @@ #include #include -#include "common/frontend_exceptions.hpp" #include "node_context.hpp" +#include "openvino/frontend/exception.hpp" #include "openvino/opsets/opset7.hpp" #include "place.hpp" #include "tensorflow_frontend/graph_iterator.hpp" diff --git a/src/frontends/tensorflow/src/model.hpp b/src/frontends/tensorflow/src/model.hpp index d2edc1dc5d3..6c88056131e 100644 --- a/src/frontends/tensorflow/src/model.hpp +++ b/src/frontends/tensorflow/src/model.hpp @@ -4,9 +4,9 @@ #pragma once -#include "common/input_model.hpp" -#include "common/place.hpp" -#include "common/telemetry_extension.hpp" +#include "openvino/frontend/input_model.hpp" +#include "openvino/frontend/place.hpp" +#include "openvino/frontend/telemetry_extension.hpp" #include "tensorflow_frontend/graph_iterator.hpp" namespace ov { diff --git a/src/frontends/tensorflow/src/place.cpp b/src/frontends/tensorflow/src/place.cpp index 8b7a3f9ac55..bdddede95f7 100644 --- a/src/frontends/tensorflow/src/place.cpp +++ b/src/frontends/tensorflow/src/place.cpp @@ -4,9 +4,9 @@ #include "place.hpp" -#include "common/frontend_exceptions.hpp" #include "node_context.hpp" #include "op_def.pb.h" +#include "openvino/frontend/exception.hpp" #include "tensor.pb.h" #include "types.pb.h" diff --git a/src/frontends/tensorflow/src/place.hpp b/src/frontends/tensorflow/src/place.hpp index 733e0c25262..f6197ee3a90 100644 --- a/src/frontends/tensorflow/src/place.hpp +++ b/src/frontends/tensorflow/src/place.hpp @@ -4,7 +4,7 @@ #pragma once -#include "common/frontend.hpp" +#include "openvino/frontend/frontend.hpp" #include "tensorflow_frontend/decoder.hpp" namespace ov { diff --git a/src/frontends/tensorflow/src/tensorflow.cpp b/src/frontends/tensorflow/src/tensorflow.cpp index 24824017e42..e462ef7b92e 100644 --- a/src/frontends/tensorflow/src/tensorflow.cpp +++ b/src/frontends/tensorflow/src/tensorflow.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "tensorflow_frontend/frontend.hpp" TF_C_API ov::frontend::FrontEndVersion GetAPIVersion() { diff --git a/src/inference/include/ie/ie_input_info.hpp b/src/inference/include/ie/ie_input_info.hpp index 94965b6f5ff..52f86890dc8 100644 --- a/src/inference/include/ie/ie_input_info.hpp +++ b/src/inference/include/ie/ie_input_info.hpp @@ -145,7 +145,7 @@ public: * @return PartialShape object describing input shape. */ INFERENCE_ENGINE_DEPRECATED("Use OpenVINO 2.0 API for dynamic shapes support") - ngraph::PartialShape getPartialShape() { + ngraph::PartialShape getPartialShape() const { if (!_inputData) { IE_THROW() << "Data is empty!"; } diff --git a/src/inference/include/ie/multi-device/multi_device_config.hpp b/src/inference/include/ie/multi-device/multi_device_config.hpp index 0f4f2dd829b..2426ec11d6f 100644 --- a/src/inference/include/ie/multi-device/multi_device_config.hpp +++ b/src/inference/include/ie/multi-device/multi_device_config.hpp @@ -34,5 +34,13 @@ namespace MultiDeviceConfigParams { */ DECLARE_MULTI_CONFIG_KEY(DEVICE_PRIORITIES); +/** + * @brief network priority config option, the range of value is from 0 to the max integer, + * when there are multi devices, the value is smaller, the priority is higher, + * 0 is the highest priority. Auto plugin dispatch the network to device + * according to priority value. when all devices are free, even if the priority value + * is not 0, the network will be dispatched to the strongest device. + */ +DECLARE_CONFIG_KEY(AUTO_NETWORK_PRIORITY); } // namespace MultiDeviceConfigParams } // namespace InferenceEngine diff --git a/src/inference/src/cpp_interfaces/interface/ie_iplugin_internal.cpp b/src/inference/src/cpp_interfaces/interface/ie_iplugin_internal.cpp index a3f27eb8ea2..945f06ef6e8 100644 --- a/src/inference/src/cpp_interfaces/interface/ie_iplugin_internal.cpp +++ b/src/inference/src/cpp_interfaces/interface/ie_iplugin_internal.cpp @@ -309,16 +309,15 @@ void IInferencePlugin::SetExeNetworkInfo(const std::shared_ptrget_output_size()); for (const auto& param : function->get_parameters()) { - auto new_param = param->copy_with_new_inputs({}); + auto new_param = ov::as_type_ptr(param->copy_with_new_inputs({})); new_param->set_friendly_name(param->get_friendly_name()); if (add_operation_names) new_param->output(0).get_tensor().add_names({new_param->get_friendly_name()}); // WA: use CNNNetwork's precisions since plugins sometimes override their precisions // after transformation pipeline is run - new_param->set_output_type( - 0, - InferenceEngine::details::convertPrecision(inputsInfo.at(new_param->get_friendly_name())->getPrecision()), - new_param->get_output_partial_shape(0)); + new_param->set_element_type( + InferenceEngine::details::convertPrecision(inputsInfo.at(new_param->get_friendly_name())->getPrecision())); + new_param->validate_and_infer_types(); const_params.emplace_back(new_param); } for (const auto& result : function->get_results()) { @@ -326,10 +325,9 @@ void IInferencePlugin::SetExeNetworkInfo(const std::shared_ptrget_output_partial_shape(0)); const std::string param_name = ngraph::op::util::create_ie_output_name(result->input_value(0)); fake_param->set_friendly_name(param_name); - fake_param->set_output_type( - 0, - InferenceEngine::details::convertPrecision(outputsInfo.at(param_name)->getPrecision()), - fake_param->get_output_partial_shape(0)); + fake_param->set_element_type( + InferenceEngine::details::convertPrecision(outputsInfo.at(param_name)->getPrecision())); + fake_param->validate_and_infer_types(); auto new_result = result->copy_with_new_inputs({fake_param}); new_result->set_friendly_name(result->get_friendly_name()); if (add_operation_names) { diff --git a/src/inference/src/ie_network_reader.cpp b/src/inference/src/ie_network_reader.cpp index 6fa28421f66..e7bc26c8e99 100644 --- a/src/inference/src/ie_network_reader.cpp +++ b/src/inference/src/ie_network_reader.cpp @@ -18,7 +18,7 @@ #include "ie_common.h" #include "ie_icnn_network.hpp" #include "ie_input_info.hpp" -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #ifdef ENABLE_IR_V7_READER # include "legacy/ie_ir_version.hpp" #endif diff --git a/src/plugins/auto/executable_network.cpp b/src/plugins/auto/executable_network.cpp index b4416c02319..11b38c9d770 100644 --- a/src/plugins/auto/executable_network.cpp +++ b/src/plugins/auto/executable_network.cpp @@ -149,11 +149,13 @@ MultiDeviceExecutableNetwork::MultiDeviceExecutableNetwork(const std::string& const std::vector& metaDevices, const std::string& strDevices, MultiDeviceInferencePlugin* plugin, - const bool needPerfCounters) + const AutoContext& context, + const bool needPerfCounters) : _devicePriorities{metaDevices} , _devicePrioritiesInitial{metaDevices} , _needPerfCounters(needPerfCounters) , _multiPlugin(plugin) + , _context(context) , _workModeIsAUTO(true) , _network(network) { if (_multiPlugin->GetCore() == nullptr) { @@ -174,7 +176,8 @@ MultiDeviceExecutableNetwork::MultiDeviceExecutableNetwork(const std::string& _loadContext[ACTUALDEVICE].isEnabled = true; _loadContext[ACTUALDEVICE].networkPrecision = GetNetworkPrecision(network); _loadContext[ACTUALDEVICE].metaDevices = metaDevices; - _loadContext[ACTUALDEVICE].deviceInfo = _multiPlugin->SelectDevice(metaDevices, _loadContext[ACTUALDEVICE].networkPrecision); + _loadContext[ACTUALDEVICE].deviceInfo = _multiPlugin->SelectDevice(metaDevices, + _loadContext[ACTUALDEVICE].networkPrecision, _context.modelPriority); LOG_INFO("[AUTOPLUGIN]:select device:%s", _loadContext[ACTUALDEVICE].deviceInfo.deviceName.c_str()); bool isActualDevCPU = _loadContext[ACTUALDEVICE].deviceInfo.deviceName.find("CPU") != std::string::npos; @@ -298,6 +301,13 @@ void MultiDeviceExecutableNetwork::TryToLoadNetWork(AutoLoadContext& context, return; } + // need to reload network, unregister it's priority + // there maybe potential issue. + // for example they are dGPU, VPUX, iGPU, customer want to LoadNetwork with + // configure 0 dGPU, 1 VPUX, if dGPU load failed, + // the result will be not sure, maybe two network are loaded into VPUX, + // maybe 0 is loaded to VPUX, 1 is loaded to iGPU + _multiPlugin->UnregisterPriority(_context.modelPriority, context.deviceInfo.uniqueName); // remove the current device from deviceList auto eraseDevice = std::find_if(deviceList.begin(), deviceList.end(), [device](DeviceInformation& d){ @@ -311,8 +321,8 @@ void MultiDeviceExecutableNetwork::TryToLoadNetWork(AutoLoadContext& context, // select next candidate device try { - std::lock_guard lock(_confMutex); - context.deviceInfo = _multiPlugin->SelectDevice(deviceList, context.networkPrecision); + context.deviceInfo = _multiPlugin->SelectDevice(deviceList, + context.networkPrecision, _context.modelPriority); } catch (const std::exception& e) { return; @@ -389,7 +399,7 @@ void MultiDeviceExecutableNetwork::WaitActualNetworkReady() const { // for every MultiDeviceExecutableNetwork instance std::call_once(_oc, [this] () { if (_loadContext[ACTUALDEVICE].future.valid()) { - _loadContext[ACTUALDEVICE].future.get(); + _loadContext[ACTUALDEVICE].future.wait(); } // if _loadContext[ACTUALDEVICE] load failed, fall back to _loadContext[CPU] if (!_loadContext[ACTUALDEVICE].isAlready) { @@ -467,13 +477,17 @@ void MultiDeviceExecutableNetwork::run(Task inferPipelineTask) { } MultiDeviceExecutableNetwork::~MultiDeviceExecutableNetwork() { - // this is necessary to guarantee member destroyed after getting future - if (_workModeIsAUTO && _loadContext[CPU].isEnabled) { - _loadContext[CPU].future.get(); - WaitActualNetworkReady(); - // it's necessary to wait the loading network threads to stop here. - InferenceEngine::ExecutorManager::getInstance()->clear("AutoDeviceAsyncLoad"); - _executor.reset(); + if (_workModeIsAUTO) { + // this is necessary to guarantee member destroyed after getting future + if (_loadContext[CPU].isEnabled) { + _loadContext[CPU].future.wait(); + WaitActualNetworkReady(); + // it's necessary to wait the loading network threads to stop here. + InferenceEngine::ExecutorManager::getInstance()->clear("AutoDeviceAsyncLoad"); + _executor.reset(); + } + _multiPlugin->UnregisterPriority(_context.modelPriority, + _loadContext[ACTUALDEVICE].deviceInfo.uniqueName); } { std::lock_guard lock(_mutex); @@ -622,33 +636,32 @@ void MultiDeviceExecutableNetwork::SetConfig(const std::map lockConf(_confMutex); _config[MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES] = priorities->second; - _confMutex.unlock(); } } } InferenceEngine::Parameter MultiDeviceExecutableNetwork::GetConfig(const std::string &name) const { - _confMutex.lock(); - auto it = _config.find(name); - if (it != _config.end()) { - _confMutex.unlock(); - return it->second; - } else { - _confMutex.unlock(); - // find config key among networks config keys - for (const auto& desc : _networksPerDevice) { - const auto& execNetwork = desc.second; - auto param = execNetwork->GetMetric(METRIC_KEY(SUPPORTED_CONFIG_KEYS)); - for (auto &&configKey : param.as>()) { - if (configKey == name) { - return execNetwork->GetConfig(configKey); - } + { + std::lock_guard lock(_confMutex); + auto it = _config.find(name); + if (it != _config.end()) { + return it->second; + } + } + + // find config key among networks config keys + for (const auto& desc : _networksPerDevice) { + const auto& execNetwork = desc.second; + auto param = execNetwork->GetMetric(METRIC_KEY(SUPPORTED_CONFIG_KEYS)); + for (auto &&configKey : param.as>()) { + if (configKey == name) { + return execNetwork->GetConfig(configKey); } } - IE_THROW(NotFound) << name <<" not found in the ExecutableNetwork config"; } + IE_THROW(NotFound) << name <<" not found in the ExecutableNetwork config"; } InferenceEngine::Parameter MultiDeviceExecutableNetwork::GetMetric(const std::string &name) const { diff --git a/src/plugins/auto/executable_network.hpp b/src/plugins/auto/executable_network.hpp index 119e030b6fc..0ed3574434b 100644 --- a/src/plugins/auto/executable_network.hpp +++ b/src/plugins/auto/executable_network.hpp @@ -38,6 +38,12 @@ struct DeviceInformation { std::map config; int numRequestsPerDevices; std::string defaultDeviceID; + DeviceName uniqueName; +}; + +struct AutoContext { + bool needPerfCounters = {false}; + unsigned int modelPriority = 0; }; struct AutoLoadContext { @@ -88,6 +94,7 @@ public: const std::vector& metaDevices, const std::string& strDevices, MultiDeviceInferencePlugin* plugin, + const AutoContext& context, const bool needPerfCounters = false); void SetConfig(const std::map &config) override; @@ -137,6 +144,7 @@ private: std::shared_ptr _core; InferenceEngine::IStreamsExecutor::Ptr _executor; MultiDeviceInferencePlugin* _multiPlugin; + AutoContext _context; bool _workModeIsAUTO = {false}; mutable std::once_flag _oc; std::once_flag _firstLoadOC; diff --git a/src/plugins/auto/plugin.cpp b/src/plugins/auto/plugin.cpp index 4416d707e62..7e388cc7ff9 100644 --- a/src/plugins/auto/plugin.cpp +++ b/src/plugins/auto/plugin.cpp @@ -60,10 +60,15 @@ namespace { res.push_back(CONFIG_KEY_INTERNAL(MULTI_WORK_MODE_AS_AUTO)); res.push_back(PluginConfigParams::KEY_PERF_COUNT); res.push_back(PluginConfigParams::KEY_EXCLUSIVE_ASYNC_REQUESTS); + res.push_back(MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY); return res; }(); } // namespace + +std::mutex MultiDeviceInferencePlugin::_mtx; +std::map> MultiDeviceInferencePlugin::_priorityMap; + std::map MultiDeviceInferencePlugin::GetSupportedConfig( const std::map & config, const std::string & deviceName) const { std::vector supportedConfigKeys = GetCore()->GetMetric(deviceName, METRIC_KEY(SUPPORTED_CONFIG_KEYS)); @@ -137,11 +142,31 @@ std::vector MultiDeviceInferencePlugin::ParseMetaDevices(cons std::string defaultDeviceID = ""; DeviceIDParser parsed{deviceName}; - if (parsed.getDeviceID().empty()) + std::string deviceid = parsed.getDeviceID(); + if (deviceid.empty()) { defaultDeviceID = getDefaultDeviceID(deviceName); + deviceid = defaultDeviceID; + } + std::string fullDeviceName = ""; + std::string uniqueName = ""; + if (parsed.getDeviceName() == "GPU") { + std::vector supportedMetrics = GetCore()->GetMetric(deviceName, METRIC_KEY(SUPPORTED_METRICS)); + if (std::find(supportedMetrics.begin(), supportedMetrics.end(), METRIC_KEY(FULL_DEVICE_NAME)) != supportedMetrics.end()) { + fullDeviceName = GetCore()->GetMetric(deviceName, METRIC_KEY(FULL_DEVICE_NAME)).as(); + } + } + + if (fullDeviceName.empty()) { + uniqueName = parsed.getDeviceName() + "_" + deviceid; + } else { + uniqueName = fullDeviceName + "_" + deviceid; + } + + LOG_DEBUG("deviceName:%s, defaultDeviceID:%s, uniqueName:%s", + deviceName.c_str(), defaultDeviceID.c_str(), uniqueName.c_str()); // create meta device - metaDevices.push_back({ deviceName, getDeviceConfig(deviceName), numRequests, defaultDeviceID }); + metaDevices.push_back({ deviceName, getDeviceConfig(deviceName), numRequests, defaultDeviceID, uniqueName}); } return metaDevices; @@ -162,10 +187,9 @@ InferenceEngine::Parameter MultiDeviceInferencePlugin::GetConfig(const std::stri } void MultiDeviceInferencePlugin::SetConfig(const std::map & config) { - bool needPerfCounters = false; + AutoContext context; std::map filterConfig; - CheckConfig(config, needPerfCounters, filterConfig); - + CheckConfig(config, context, filterConfig); for (auto && kvp : config) { const auto& name = kvp.first; _config[name] = kvp.second; @@ -237,10 +261,11 @@ IExecutableNetworkInternal::Ptr MultiDeviceInferencePlugin::LoadNetworkImpl(cons if (workModeAuto) { // check the configure and check if need to set PerfCounters configure to device // and set filter configure + OV_ITT_SCOPED_TASK(itt::domains::MULTIPlugin, "MultiDeviceInferencePlugin::LoadNetworkImpl::AutoMode"); - bool needPerfCounters = false; + AutoContext context; std::map filterConfig; - CheckConfig(fullConfig, needPerfCounters, filterConfig); + CheckConfig(fullConfig, context, filterConfig); // filter the device that supports filter configure auto strDevices = GetDeviceList(fullConfig); auto metaDevices = ParseMetaDevices(strDevices, fullConfig); @@ -269,7 +294,7 @@ IExecutableNetworkInternal::Ptr MultiDeviceInferencePlugin::LoadNetworkImpl(cons strDevices += ((iter + 1) == supportDevices.end()) ? "" : ","; } - return std::make_shared(modelPath, network, supportDevices, strDevices, this, needPerfCounters); + return std::make_shared(modelPath, network, supportDevices, strDevices, this, context, context.needPerfCounters); } OV_ITT_SCOPED_TASK(itt::domains::MULTIPlugin, "MultiDeviceInferencePlugin::LoadNetworkImpl:MultiMode"); if (priorities == fullConfig.end()) { @@ -377,20 +402,18 @@ QueryNetworkResult MultiDeviceInferencePlugin::QueryNetwork(const CNNNetwork& return queryResult; } -DeviceInformation MultiDeviceInferencePlugin::SelectDevice(const std::vector& metaDevices, const std::string& networkPrecision) { +DeviceInformation MultiDeviceInferencePlugin::SelectDevice(const std::vector& metaDevices, + const std::string& networkPrecision, unsigned int priority) { OV_ITT_SCOPED_TASK(itt::domains::MULTIPlugin, "MultiDeviceInferencePlugin::SelectDevice"); if (metaDevices.empty()) { IE_THROW(NotFound) << "No available device to select in " << GetName() << " plugin"; } - if (metaDevices.size() == 1) { - return metaDevices.at(0); - } - std::vector CPU; - std::vector dGPU; - std::vector iGPU; - std::vector MYRIAD; - std::vector VPUX; + std::list CPU; + std::list dGPU; + std::list iGPU; + std::list MYRIAD; + std::list VPUX; for (auto& item : metaDevices) { if (item.deviceName.find("CPU") == 0) { @@ -406,96 +429,103 @@ DeviceInformation MultiDeviceInferencePlugin::SelectDevice(const std::vectorGetMetric(item.deviceName, METRIC_KEY(FULL_DEVICE_NAME)).as(); - if (gpuFullDeviceName.find("iGPU") != std::string::npos) { + auto& gpuUniqueName = item.uniqueName; + if (gpuUniqueName.find("iGPU") != std::string::npos) { iGPU.push_back(item); - } else if (gpuFullDeviceName.find("dGPU") != std::string::npos) { + } else if (gpuUniqueName.find("dGPU") != std::string::npos) { dGPU.push_back(item); } continue; } } - if (CPU.empty() && dGPU.empty() && iGPU.empty() && MYRIAD.empty() && VPUX.empty()) { - IE_THROW(NotFound) << "No available device found"; - } - // Priority of selecting device: dGPU > VPUX > iGPU > MYRIAD > CPU - if (!dGPU.empty()) { - for (auto&& item : dGPU) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), networkPrecision); - if (supportNetwork != capability.end()) { - return item; - } - } - } else if (!VPUX.empty()) { - for (auto&& item : VPUX) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), networkPrecision); - if (supportNetwork != capability.end()) { - return item; - } - } - } else if (!iGPU.empty()) { - for (auto&& item : iGPU) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), networkPrecision); - if (supportNetwork != capability.end()) { - return item; - } - } - } else if (!MYRIAD.empty()) { - for (auto&& item : MYRIAD) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), networkPrecision); - if (supportNetwork != capability.end()) { - return item; - } - } - } + std::list devices; + devices.splice(devices.end(), dGPU); + devices.splice(devices.end(), VPUX); + devices.splice(devices.end(), iGPU); + devices.splice(devices.end(), MYRIAD); - // If network is FP32 but there is no device support FP32, offload FP32 network to device support FP16. + std::list validDevices; + + auto selectSupportDev = [this, &devices, &validDevices](const std::string& networkPrecision) { + for (auto iter = devices.begin(); iter != devices.end();) { + std::vector capability = GetCore()->GetMetric(iter->deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); + auto supportNetwork = std::find(capability.begin(), capability.end(), (networkPrecision)); + if (supportNetwork != capability.end()) { + validDevices.push_back(std::move(*iter)); + devices.erase(iter++); + continue; + } + iter++; + } + }; + selectSupportDev(networkPrecision); + // If network is FP32, continue to collect the device support FP16 but not support FP32. if (networkPrecision == "FP32") { - if (!dGPU.empty()) { - for (auto&& item : dGPU) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), "FP16"); - if (supportNetwork != capability.end()) { - return item; - } - } - } else if (!VPUX.empty()) { - for (auto&& item : VPUX) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), "FP16"); - if (supportNetwork != capability.end()) { - return item; - } - } - } else if (!iGPU.empty()) { - for (auto&& item : iGPU) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), "FP16"); - if (supportNetwork != capability.end()) { - return item; - } - } - } else if (!MYRIAD.empty()) { - for (auto&& item : MYRIAD) { - std::vector capability = GetCore()->GetMetric(item.deviceName, METRIC_KEY(OPTIMIZATION_CAPABILITIES)); - auto supportNetwork = std::find(capability.begin(), capability.end(), "FP16"); - if (supportNetwork != capability.end()) { - return item; - } + const std::string f16 = "FP16"; + selectSupportDev(f16); + } + // add cpu devices if exist. + validDevices.splice(validDevices.end(), CPU); + + if (validDevices.empty()) { + IE_THROW() << "Cannot select any device"; + } + // all available Devices are in validDevices now + // need to remove higher priority devices + // save the last device first + DeviceInformation lastDevice = validDevices.back(); + { + // begin to filter devices + std::lock_guard lck(_mtx); + for (auto && kvp : _priorityMap) { + if (kvp.first >= priority) { + continue; } + auto& filterDevices = kvp.second; + auto sd = std::remove_if(validDevices.begin(), validDevices.end(), [&filterDevices](DeviceInformation device) { + auto iter = std::find_if(filterDevices.begin(), filterDevices.end(), [&device](std::string uniqueName) { + return (uniqueName == device.uniqueName); + }); + return iter != filterDevices.end() ? true : false; + }); + validDevices.erase(sd, validDevices.end()); } } - if (CPU.empty()) { - IE_THROW() << "Cannot select any device"; + DeviceInformation* ptrSelectDevice = NULL; + if (validDevices.empty()) { + // after remove higher priority device,but the available devices is null, + // so select the last device of all available Devices. + ptrSelectDevice = &lastDevice; + } else { + // select the first device in the rest of available devices. + ptrSelectDevice = &validDevices.front(); } - return CPU[0]; + //recode the device priority + RegisterPriority(priority, ptrSelectDevice->uniqueName); + return *ptrSelectDevice; +} + +void MultiDeviceInferencePlugin::UnregisterPriority(const unsigned int& priority, + const std::string& deviceName) { + std::lock_guard lck(_mtx); + auto& priorityDevices = _priorityMap[priority]; + for (auto iter = priorityDevices.begin(); iter != priorityDevices.end();) { + if (*iter == deviceName) { + priorityDevices.erase(iter); + break; + } + iter++; + } +} + +void MultiDeviceInferencePlugin::RegisterPriority(const unsigned int& priority, + const std::string& deviceName) { + std::lock_guard lck(_mtx); + auto& priorityDevices = _priorityMap[priority]; + priorityDevices.push_back(deviceName); } std::string MultiDeviceInferencePlugin::GetDeviceList(const std::map& config) const { @@ -520,19 +550,17 @@ std::string MultiDeviceInferencePlugin::GetDeviceList(const std::map& config, - bool& needPerfCounters, std::map& filterConfig) { + AutoContext& context, std::map& filterConfig) { // TODO need to optimize this code, too much duplicated code const auto perf_hints_configs = PerfHintsConfig::SupportedKeys(); for (auto&& kvp : config) { - if (kvp.first.find("AUTO_") == 0) { - continue; - } else if (kvp.first == PluginConfigParams::KEY_PERF_COUNT) { + if (kvp.first == PluginConfigParams::KEY_PERF_COUNT) { if (kvp.second == PluginConfigParams::YES) { - needPerfCounters = true; + context.needPerfCounters = true; filterConfig.insert({kvp.first, kvp.second}); } else if (kvp.second == PluginConfigParams::NO) { - needPerfCounters = false; + context.needPerfCounters = false; } else { IE_THROW() << "Unsupported config value: " << kvp.second << " for key: " << kvp.first; @@ -551,10 +579,24 @@ void MultiDeviceInferencePlugin::CheckConfig(const std::map #include #include +#include #include #include @@ -45,7 +46,10 @@ public: const std::map & config) const; std::string GetDeviceList(const std::map& config) const; - MOCKTESTMACRO DeviceInformation SelectDevice(const std::vector& metaDevices, const std::string& networkPrecision = METRIC_VALUE(FP32)); + MOCKTESTMACRO DeviceInformation SelectDevice(const std::vector& metaDevices, + const std::string& networkPrecision = METRIC_VALUE(FP32), unsigned int priority = 0); + void UnregisterPriority(const unsigned int& priority, const std::string& deviceName); + void RegisterPriority(const unsigned int& priority, const std::string& deviceName); protected: std::map GetSupportedConfig(const std::map& config, @@ -56,10 +60,12 @@ private: InferenceEngine::CNNNetwork network, const std::map& config, const std::string &networkPrecision = METRIC_VALUE(FP32)); - static void CheckConfig(const std::map& config, bool& needPerfCounters, + static void CheckConfig(const std::map& config, AutoContext& context, std::map& filterConfig); std::vector FilterDevice(const std::vector& metaDevices, const std::map& config); + static std::mutex _mtx; + static std::map> _priorityMap; }; } // namespace MultiDevicePlugin diff --git a/src/plugins/intel_gpu/include/intel_gpu/plugin/primitives_list.hpp b/src/plugins/intel_gpu/include/intel_gpu/plugin/primitives_list.hpp index 9285b5e7032..3962ffa1b23 100644 --- a/src/plugins/intel_gpu/include/intel_gpu/plugin/primitives_list.hpp +++ b/src/plugins/intel_gpu/include/intel_gpu/plugin/primitives_list.hpp @@ -211,11 +211,14 @@ REGISTER_FACTORY(v6, ExperimentalDetectronROIFeatureExtractor); REGISTER_FACTORY(v7, Gather); // ------------------------------ Supported v8 ops ------------------------------ // +REGISTER_FACTORY(v8, Slice); REGISTER_FACTORY(v8, Gather); REGISTER_FACTORY(v8, GatherND); REGISTER_FACTORY(v8, DeformableConvolution); REGISTER_FACTORY(v8, NV12toRGB); REGISTER_FACTORY(v8, NV12toBGR); +REGISTER_FACTORY(v8, I420toRGB); +REGISTER_FACTORY(v8, I420toBGR); // --------------------------- Supported internal ops --------------------------- // REGISTER_FACTORY(internal, NonMaxSuppressionIEInternal); diff --git a/src/plugins/intel_gpu/src/plugin/ops/convert_color.cpp b/src/plugins/intel_gpu/src/plugin/ops/convert_color.cpp index a3ba0ee20a8..c867b58fe38 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/convert_color.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/convert_color.cpp @@ -44,16 +44,28 @@ static void CreateCommonConvertColorOp(Program& p, const std::shared_ptr& op) { p.ValidateInputs(op, {1, 2}); - CreateCommonConvertColorOp(p, op, cldnn::convert_color::color_format::NV12, cldnn::convert_color::color_format::RGB); + CreateCommonConvertColorOp(p, op, cldnn::convert_color::color_format::NV12, cldnn::convert_color::color_format::RGB); } static void CreateNV12toBGROp(Program& p, const std::shared_ptr& op) { p.ValidateInputs(op, {1, 2}); - CreateCommonConvertColorOp(p, op, cldnn::convert_color::color_format::NV12, cldnn::convert_color::color_format::BGR); + CreateCommonConvertColorOp(p, op, cldnn::convert_color::color_format::NV12, cldnn::convert_color::color_format::BGR); +} + +static void CreateI420toRGBOp(Program& p, const std::shared_ptr& op) { + p.ValidateInputs(op, {1, 3}); + CreateCommonConvertColorOp(p, op, cldnn::convert_color::color_format::I420, cldnn::convert_color::color_format::RGB); +} + +static void CreateI420toBGROp(Program& p, const std::shared_ptr& op) { + p.ValidateInputs(op, {1, 3}); + CreateCommonConvertColorOp(p, op, cldnn::convert_color::color_format::I420, cldnn::convert_color::color_format::BGR); } REGISTER_FACTORY_IMPL(v8, NV12toRGB); REGISTER_FACTORY_IMPL(v8, NV12toBGR); +REGISTER_FACTORY_IMPL(v8, I420toRGB); +REGISTER_FACTORY_IMPL(v8, I420toBGR); } // namespace intel_gpu } // namespace runtime diff --git a/src/plugins/intel_gpu/src/plugin/ops/convolution.cpp b/src/plugins/intel_gpu/src/plugin/ops/convolution.cpp index e04e2a390db..248a0d3758b 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/convolution.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/convolution.cpp @@ -137,11 +137,12 @@ static void CreateConvolutionBackpropDataOp(Program& p, const std::shared_ptrget_input_node_shared_ptr(1); - // WA: For the cases like Const(weights)->Sub(zp)->Deconv. + bool hasConstantWeights = IsNodeOnConstPath(weights_node); + // WA: For the cases like Const(weights)->Sub(zp)->Deconv. And also for the cases with real runtime weights. // Dimensions order of weights blob is IOYX, but // the selected format is OIYX by default. So we need to swap (and transpose) I and O dimensions to match the format // For Constant node on input transpose is not needed, because the data is transposed on const node creation - if (IsNodeOnConstPath(weights_node) && std::dynamic_pointer_cast(weights_node) == nullptr) { + if ((hasConstantWeights && std::dynamic_pointer_cast(weights_node) == nullptr) || !hasConstantWeights) { std::string permuteName = layerName + "_cldnn_weights_permute"; auto weights_rank = op->get_input_shape(1).size(); std::vector permute_order(weights_rank); @@ -195,11 +196,12 @@ static void CreateGroupConvolutionBackpropDataOp(Program& p, const std::shared_p auto weightsName = inputs[1]; auto weights_node = op->get_input_node_shared_ptr(1); - // WA: For the cases like Const(weights)->Sub(zp)->Deconv. + bool hasConstWeights = IsNodeOnConstPath(weights_node); + // WA: For the cases like Const(weights)->Sub(zp)->Deconv. And also for the cases with real runtime weights. // Dimensions order of weights blob is IOYX, but // the selected format is OIYX by default. So we need to swap I and O dimensions to match the format. // For Constant node on input transpose is not needed, because the data is transposed on const node creation - if (IsNodeOnConstPath(weights_node) && std::dynamic_pointer_cast(weights_node) == nullptr) { + if ((hasConstWeights && std::dynamic_pointer_cast(weights_node) == nullptr) || !hasConstWeights) { std::string permuteName = layerName + "_cldnn_weights_permute"; auto weights_rank = op->get_input_shape(1).size(); std::vector permute_order(weights_rank); diff --git a/src/plugins/intel_gpu/src/plugin/ops/parameter.cpp b/src/plugins/intel_gpu/src/plugin/ops/parameter.cpp index 1e68ba52db9..53e83826b82 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/parameter.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/parameter.cpp @@ -181,7 +181,9 @@ static void CreateParameterOp(Program& p, const std::shared_ptrget_users()) { is_convert_color_input |= ngraph::is_type(node) || - ngraph::is_type(node); + ngraph::is_type(node) || + ngraph::is_type(node) || + ngraph::is_type(node); } if (is_convert_color_input) { diff --git a/src/plugins/intel_gpu/src/plugin/ops/result.cpp b/src/plugins/intel_gpu/src/plugin/ops/result.cpp index ed1f30dd482..dbe2737ffd9 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/result.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/result.cpp @@ -41,7 +41,9 @@ static void CreateResultOp(Program& p, const std::shared_ptr(prev) || - ngraph::is_type(prev)) { + ngraph::is_type(prev) || + ngraph::is_type(prev) || + ngraph::is_type(prev)) { outputlayout = NHWC; } diff --git a/src/plugins/intel_gpu/src/plugin/ops/slice.cpp b/src/plugins/intel_gpu/src/plugin/ops/slice.cpp new file mode 100644 index 00000000000..84a4106048c --- /dev/null +++ b/src/plugins/intel_gpu/src/plugin/ops/slice.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "intel_gpu/plugin/program.hpp" +#include "intel_gpu/plugin/common_utils.hpp" + +#include "ngraph/op/slice.hpp" + +#include "intel_gpu/primitives/slice.hpp" + +#include + +namespace ov { +namespace runtime { +namespace intel_gpu { + +namespace { + +static void CreateSliceOp(Program& p, const std::shared_ptr& op) { + p.ValidateInputs(op, { 4, 5 }); + auto input_primitives = p.GetInputPrimitiveIDs(op); + auto output_shape = tensor_from_dims(op->get_output_shape(0)); + auto slice_prim = cldnn::slice(layer_type_name_ID(op), + input_primitives, output_shape, + op->get_friendly_name()); + p.AddPrimitive(slice_prim); + p.AddPrimitiveToProfiler(op); +} + +} // namespace + +REGISTER_FACTORY_IMPL(v8, Slice); + +} // namespace intel_gpu +} // namespace runtime +} // namespace ov diff --git a/src/plugins/intel_gpu/src/plugin/program.cpp b/src/plugins/intel_gpu/src/plugin/program.cpp index c2cc3875497..cc3fb1a6e10 100644 --- a/src/plugins/intel_gpu/src/plugin/program.cpp +++ b/src/plugins/intel_gpu/src/plugin/program.cpp @@ -346,7 +346,7 @@ bool IsNodeOnConstPath(const std::shared_ptr& node) { std::function&)> is_const_node = [&nodes_processed, &is_const_node](const std::shared_ptr& node) { if (nodes_processed.count(node)) return true; nodes_processed.insert(node); - // If input is constant, then drop if from the processing list + // If input is constant, then drop it from the processing list if (std::dynamic_pointer_cast(node) != nullptr) return true; // If the node doesn't have any parents and it's not a constant, then we deal with dynamic path diff --git a/inference-engine/tests/CMakeLists.txt b/src/tests/CMakeLists.txt similarity index 60% rename from inference-engine/tests/CMakeLists.txt rename to src/tests/CMakeLists.txt index 67dbe6a0b0f..a6b1a82393a 100644 --- a/inference-engine/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -6,10 +6,17 @@ set(IE_TESTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) enable_testing() +if(NOT MSVC) + ie_add_compiler_flags(-Wno-missing-declarations) + ie_add_compiler_flags(-Wno-sign-compare) + ie_add_compiler_flags(-Wno-odr) + ie_add_compiler_flags(-Wno-all) +endif() + add_subdirectory(ngraph_helpers) add_subdirectory(unit) add_subdirectory(ie_test_utils) if(ENABLE_FUNCTIONAL_TESTS) add_subdirectory(functional) -endif() \ No newline at end of file +endif() diff --git a/inference-engine/tests/README.md b/src/tests/README.md similarity index 100% rename from inference-engine/tests/README.md rename to src/tests/README.md diff --git a/inference-engine/tests/functional/CMakeLists.txt b/src/tests/functional/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/CMakeLists.txt rename to src/tests/functional/CMakeLists.txt diff --git a/inference-engine/tests/functional/inference_engine/CMakeLists.txt b/src/tests/functional/inference_engine/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/inference_engine/CMakeLists.txt rename to src/tests/functional/inference_engine/CMakeLists.txt diff --git a/inference-engine/tests/functional/inference_engine/async_infer_request_test.cpp b/src/tests/functional/inference_engine/async_infer_request_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/async_infer_request_test.cpp rename to src/tests/functional/inference_engine/async_infer_request_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/blob_copy_test.cpp b/src/tests/functional/inference_engine/blob_copy_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/blob_copy_test.cpp rename to src/tests/functional/inference_engine/blob_copy_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/caching_test.cpp b/src/tests/functional/inference_engine/caching_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/caching_test.cpp rename to src/tests/functional/inference_engine/caching_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/caseless_tests.cpp b/src/tests/functional/inference_engine/caseless_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/caseless_tests.cpp rename to src/tests/functional/inference_engine/caseless_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/cnn_network/cnn_ngraph_impl_tests.cpp b/src/tests/functional/inference_engine/cnn_network/cnn_ngraph_impl_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/cnn_network/cnn_ngraph_impl_tests.cpp rename to src/tests/functional/inference_engine/cnn_network/cnn_ngraph_impl_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/cnn_network/matmul_sr_tests.cpp b/src/tests/functional/inference_engine/cnn_network/matmul_sr_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/cnn_network/matmul_sr_tests.cpp rename to src/tests/functional/inference_engine/cnn_network/matmul_sr_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/cnn_network_test.cpp b/src/tests/functional/inference_engine/cnn_network_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/cnn_network_test.cpp rename to src/tests/functional/inference_engine/cnn_network_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/conditional_compilation/selective_build.cpp b/src/tests/functional/inference_engine/conditional_compilation/selective_build.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/conditional_compilation/selective_build.cpp rename to src/tests/functional/inference_engine/conditional_compilation/selective_build.cpp diff --git a/inference-engine/tests/functional/inference_engine/conditional_compilation/selective_build_analyzer.cpp b/src/tests/functional/inference_engine/conditional_compilation/selective_build_analyzer.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/conditional_compilation/selective_build_analyzer.cpp rename to src/tests/functional/inference_engine/conditional_compilation/selective_build_analyzer.cpp diff --git a/inference-engine/tests/functional/inference_engine/core_threading.cpp b/src/tests/functional/inference_engine/core_threading.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/core_threading.cpp rename to src/tests/functional/inference_engine/core_threading.cpp diff --git a/inference-engine/tests/functional/inference_engine/data_test.cpp b/src/tests/functional/inference_engine/data_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/data_test.cpp rename to src/tests/functional/inference_engine/data_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/debug_tests.cpp b/src/tests/functional/inference_engine/debug_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/debug_tests.cpp rename to src/tests/functional/inference_engine/debug_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/executable_network.cpp b/src/tests/functional/inference_engine/executable_network.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/executable_network.cpp rename to src/tests/functional/inference_engine/executable_network.cpp diff --git a/inference-engine/tests/functional/inference_engine/ie_precision_test.cpp b/src/tests/functional/inference_engine/ie_precision_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ie_precision_test.cpp rename to src/tests/functional/inference_engine/ie_precision_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/custom_ops.cpp b/src/tests/functional/inference_engine/ir_serialization/custom_ops.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/custom_ops.cpp rename to src/tests/functional/inference_engine/ir_serialization/custom_ops.cpp diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/deterministicity.cpp b/src/tests/functional/inference_engine/ir_serialization/deterministicity.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/deterministicity.cpp rename to src/tests/functional/inference_engine/ir_serialization/deterministicity.cpp diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc.bin b/src/tests/functional/inference_engine/ir_serialization/models/add_abc.bin similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc.bin rename to src/tests/functional/inference_engine/ir_serialization/models/add_abc.bin diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc.xml b/src/tests/functional/inference_engine/ir_serialization/models/add_abc.xml similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc.xml rename to src/tests/functional/inference_engine/ir_serialization/models/add_abc.xml diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.bin b/src/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.bin similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.bin rename to src/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.bin diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.xml b/src/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.xml similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.xml rename to src/tests/functional/inference_engine/ir_serialization/models/add_abc_initializers.xml diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/custom_identity.xml b/src/tests/functional/inference_engine/ir_serialization/models/custom_identity.xml similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/custom_identity.xml rename to src/tests/functional/inference_engine/ir_serialization/models/custom_identity.xml diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/custom_op.prototxt b/src/tests/functional/inference_engine/ir_serialization/models/custom_op.prototxt similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/custom_op.prototxt rename to src/tests/functional/inference_engine/ir_serialization/models/custom_op.prototxt diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/custom_op.xml b/src/tests/functional/inference_engine/ir_serialization/models/custom_op.xml similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/custom_op.xml rename to src/tests/functional/inference_engine/ir_serialization/models/custom_op.xml diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.bin b/src/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.bin similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.bin rename to src/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.bin diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.xml b/src/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.xml similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.xml rename to src/tests/functional/inference_engine/ir_serialization/models/loop_2d_add.xml diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/ti_negative_stride.xml b/src/tests/functional/inference_engine/ir_serialization/models/ti_negative_stride.xml similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/ti_negative_stride.xml rename to src/tests/functional/inference_engine/ir_serialization/models/ti_negative_stride.xml diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/models/ti_resnet.xml b/src/tests/functional/inference_engine/ir_serialization/models/ti_resnet.xml similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/models/ti_resnet.xml rename to src/tests/functional/inference_engine/ir_serialization/models/ti_resnet.xml diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp b/src/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp rename to src/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp index c9eddbf6e21..4f1e879c966 100644 --- a/inference-engine/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/partial_shape_deserialization.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "graph_comparator.hpp" #include "ie_blob.h" diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp b/src/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp rename to src/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp index 445c672ce69..7303fce5346 100644 --- a/inference-engine/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/partial_shape_serialization.cpp @@ -9,7 +9,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "common_test_utils/ngraph_test_utils.hpp" #include "ngraph/ngraph.hpp" diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp b/src/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp rename to src/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp index 4a2f8e5e775..ff203e3a1fa 100644 --- a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/rt_info_deserialization.cpp @@ -15,7 +15,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "graph_comparator.hpp" #include "ie_blob.h" #include "ie_precision.hpp" diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp b/src/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp rename to src/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp index d72ad3b4a1a..fcb884ca442 100644 --- a/inference-engine/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp +++ b/src/tests/functional/inference_engine/ir_serialization/rt_info_serialization.cpp @@ -15,7 +15,7 @@ #include #include #include -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" using namespace ngraph; diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/tensor_iterator.cpp b/src/tests/functional/inference_engine/ir_serialization/tensor_iterator.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/tensor_iterator.cpp rename to src/tests/functional/inference_engine/ir_serialization/tensor_iterator.cpp diff --git a/inference-engine/tests/functional/inference_engine/ir_serialization/transformation.cpp b/src/tests/functional/inference_engine/ir_serialization/transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ir_serialization/transformation.cpp rename to src/tests/functional/inference_engine/ir_serialization/transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/local_test.cpp b/src/tests/functional/inference_engine/local_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/local_test.cpp rename to src/tests/functional/inference_engine/local_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/add_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/add_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/add_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/add_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/align_concat_quantization_parameters_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/align_concat_quantization_parameters_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/align_concat_quantization_parameters_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/align_concat_quantization_parameters_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/avg_pool_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/avg_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/avg_pool_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/avg_pool_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/avg_pool_with_child_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/avg_pool_with_child_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/avg_pool_with_child_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/avg_pool_with_child_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/clamp_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/clamp_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/clamp_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/clamp_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/compose_fake_quantize_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/compose_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/compose_fake_quantize_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/compose_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_selection_with_intermediate_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_selection_with_intermediate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_selection_with_intermediate_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_selection_with_intermediate_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_different_precision_on_children.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_different_precision_on_children.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_different_precision_on_children.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_different_precision_on_children.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_precision_selection_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_precision_selection_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_precision_selection_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_precision_selection_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_reshape_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_reshape_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_reshape_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_reshape_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_with_constant_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_with_constant_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_with_constant_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_intermediate_with_constant_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_neighbors_transformation_with_convolution.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_not_quantized_parent_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_reshape_at_the_end_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_reshape_at_the_end_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_reshape_at_the_end_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_reshape_at_the_end_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_split_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_split_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_split_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_strided_slice_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_strided_slice_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_strided_slice_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_strided_slice_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_unsupported_axis_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/concat_with_unsupported_axis_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/concat_with_unsupported_axis_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/concat_with_unsupported_axis_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/convert_subtract_constant_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/convolution_backprop_data_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/convolution_qdq_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/convolution_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/convolution_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/convolution_with_incorrect_weights.cpp b/src/tests/functional/inference_engine/lp_transformations/convolution_with_incorrect_weights.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/convolution_with_incorrect_weights.cpp rename to src/tests/functional/inference_engine/lp_transformations/convolution_with_incorrect_weights.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/depth_to_space_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/depth_to_space_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/depth_to_space_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/depth_to_space_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/disable_convert_on_const_path_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/disable_convert_on_const_path_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/disable_convert_on_const_path_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/disable_convert_on_const_path_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/elementwise_with_multi_parent_dequantization_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/elementwise_with_multi_parent_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/elementwise_with_multi_parent_dequantization_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/elementwise_with_multi_parent_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/eltwise_transformation_is_broadcasted_test.cpp b/src/tests/functional/inference_engine/lp_transformations/eltwise_transformation_is_broadcasted_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/eltwise_transformation_is_broadcasted_test.cpp rename to src/tests/functional/inference_engine/lp_transformations/eltwise_transformation_is_broadcasted_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp b/src/tests/functional/inference_engine/lp_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp rename to src/tests/functional/inference_engine/lp_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_on_weights_with_unsupported_child.cpp b/src/tests/functional/inference_engine/lp_transformations/fake_quantize_on_weights_with_unsupported_child.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_on_weights_with_unsupported_child.cpp rename to src/tests/functional/inference_engine/lp_transformations/fake_quantize_on_weights_with_unsupported_child.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_precision_selection_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fake_quantize_precision_selection_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_precision_selection_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fake_quantize_precision_selection_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dynamic_intervals_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dynamic_intervals_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dynamic_intervals_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fake_quantize_with_dynamic_intervals_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fold_convert_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fold_convert_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fold_convert_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fold_convert_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fold_fake_quantize_in_transformations.cpp b/src/tests/functional/inference_engine/lp_transformations/fold_fake_quantize_in_transformations.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fold_fake_quantize_in_transformations.cpp rename to src/tests/functional/inference_engine/lp_transformations/fold_fake_quantize_in_transformations.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fuse_convert_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fuse_convert_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fuse_convert_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fuse_convert_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_with_multi_inputs_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_with_multi_inputs_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_with_multi_inputs_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fuse_fake_quantize_with_multi_inputs_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fuse_multiply_to_fake_quantize_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fuse_multiply_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fuse_multiply_to_fake_quantize_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fuse_multiply_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/fuse_subtract_to_fake_quantize_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/fuse_subtract_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/fuse_subtract_to_fake_quantize_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/fuse_subtract_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/get_dequantization_below_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/get_dequantization_below_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/get_dequantization_below_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/get_dequantization_below_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/get_dequantization_test.cpp b/src/tests/functional/inference_engine/lp_transformations/get_dequantization_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/get_dequantization_test.cpp rename to src/tests/functional/inference_engine/lp_transformations/get_dequantization_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/get_dequantization_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/get_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/get_dequantization_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/get_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/group_convolution_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/group_convolution_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/interpolate_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/interpolate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/interpolate_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/interpolate_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_dequantization.cpp b/src/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_dequantization.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_dequantization.cpp rename to src/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_dequantization.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_fq.cpp b/src/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_fq.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_fq.cpp rename to src/tests/functional/inference_engine/lp_transformations/is_asymmetric_on_weights_fq.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/is_constant_path_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/is_constant_path_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/is_constant_path_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/is_constant_path_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/is_function_quantized_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/is_function_quantized_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/is_function_quantized_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/is_function_quantized_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/layer_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/layer_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/layer_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/layer_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/layer_transformation.hpp b/src/tests/functional/inference_engine/lp_transformations/layer_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/layer_transformation.hpp rename to src/tests/functional/inference_engine/lp_transformations/layer_transformation.hpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/low_precision_transformations_test.cpp b/src/tests/functional/inference_engine/lp_transformations/low_precision_transformations_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/low_precision_transformations_test.cpp rename to src/tests/functional/inference_engine/lp_transformations/low_precision_transformations_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/lpt_avoid_shapeof_propagation_test.cpp b/src/tests/functional/inference_engine/lp_transformations/lpt_avoid_shapeof_propagation_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/lpt_avoid_shapeof_propagation_test.cpp rename to src/tests/functional/inference_engine/lp_transformations/lpt_avoid_shapeof_propagation_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/lpt_public_methods_test.cpp b/src/tests/functional/inference_engine/lp_transformations/lpt_public_methods_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/lpt_public_methods_test.cpp rename to src/tests/functional/inference_engine/lp_transformations/lpt_public_methods_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/markup_avg_pool_precisions_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/markup_avg_pool_precisions_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/markup_avg_pool_precisions_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/markup_avg_pool_precisions_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/mat_mul_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/mat_mul_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/mat_mul_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/mat_mul_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/mat_mul_with_constant_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/mat_mul_with_constant_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/mat_mul_with_constant_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/mat_mul_with_constant_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/max_pool_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/max_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/max_pool_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/max_pool_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/move_dequantization_after_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/move_dequantization_after_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/move_dequantization_after_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/move_dequantization_after_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/move_fake_quantize_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/move_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/move_fake_quantize_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/move_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/multiply_to_group_convolution_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/multiply_to_group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/multiply_to_group_convolution_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/multiply_to_group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/multiply_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/multiply_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/multiply_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/multiply_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/mvn_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/mvn_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/mvn_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/mvn_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/normalize_dequantization_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/normalize_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/normalize_dequantization_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/normalize_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/normalize_l2_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/normalize_l2_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/normalize_l2_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/normalize_l2_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/pad_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/pad_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/pad_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/pad_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/precision_details_test.cpp b/src/tests/functional/inference_engine/lp_transformations/precision_details_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/precision_details_test.cpp rename to src/tests/functional/inference_engine/lp_transformations/precision_details_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/prelu_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/prelu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/prelu_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/prelu_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/pull_reshape_through_dequantization_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/pull_reshape_through_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/pull_reshape_through_dequantization_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/pull_reshape_through_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/pull_transpose_through_dequantization_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/pull_transpose_through_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/pull_transpose_through_dequantization_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/pull_transpose_through_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/reduce_max_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/reduce_max_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/reduce_max_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/reduce_max_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/reduce_mean_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/reduce_mean_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/reduce_mean_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/reduce_mean_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/reduce_min_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/reduce_min_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/reduce_min_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/reduce_min_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/reduce_sum_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/reduce_sum_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/reduce_sum_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/reduce_sum_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/reduce_transformation.hpp b/src/tests/functional/inference_engine/lp_transformations/reduce_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/reduce_transformation.hpp rename to src/tests/functional/inference_engine/lp_transformations/reduce_transformation.hpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/relu_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/relu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/relu_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/relu_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/reshape_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/reshape_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/reshape_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/reshape_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/round_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/round_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/round_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/round_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/separate_in_standalone_branch_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/separate_in_standalone_branch_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/separate_in_standalone_branch_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/separate_in_standalone_branch_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/shuffle_channels_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/shuffle_channels_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/shuffle_channels_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/shuffle_channels_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.cpp b/src/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.cpp rename to src/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.hpp b/src/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.hpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.hpp rename to src/tests/functional/inference_engine/lp_transformations/simple_low_precision_transformer.hpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/split_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/split_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/split_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/squeeze_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/squeeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/squeeze_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/squeeze_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/strided_slice_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/strided_slice_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/strided_slice_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/strided_slice_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/transformations_after_split_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/transformations_after_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/transformations_after_split_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/transformations_after_split_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/transformer_is_function_quantized.cpp b/src/tests/functional/inference_engine/lp_transformations/transformer_is_function_quantized.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/transformer_is_function_quantized.cpp rename to src/tests/functional/inference_engine/lp_transformations/transformer_is_function_quantized.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/transpose_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/transpose_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/transpose_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/transpose_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/unsqueeze_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/unsqueeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/unsqueeze_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/unsqueeze_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/lp_transformations/variadic_split_transformation.cpp b/src/tests/functional/inference_engine/lp_transformations/variadic_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/lp_transformations/variadic_split_transformation.cpp rename to src/tests/functional/inference_engine/lp_transformations/variadic_split_transformation.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/abs_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/abs_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/abs_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/abs_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/acos_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/acos_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/acos_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/acos_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/add_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/add_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/add_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/add_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/asin_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/asin_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/asin_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/asin_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/atan_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/atan_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/atan_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/atan_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/batch_norm_inference_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/batch_norm_inference_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/batch_norm_inference_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/batch_norm_inference_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/binary_convolution_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/binary_convolution_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/binary_convolution_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/binary_convolution_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/broadcast_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/broadcast_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/broadcast_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/broadcast_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/ceiling_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/ceiling_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/ceiling_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/ceiling_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/clamp_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/clamp_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/clamp_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/clamp_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/concat_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/concat_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/concat_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/concat_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/constant_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/constant_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/constant_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/constant_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/convert_like_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/convert_like_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/convert_like_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/convert_like_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/convert_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/convert_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/convert_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/convert_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/convolution_backprop_data_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/convolution_backprop_data_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/convolution_backprop_data_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/convolution_backprop_data_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/convolution_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/convolution_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/convolution_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/convolution_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/cos_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/cos_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/cos_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/cos_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/cosh_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/cosh_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/cosh_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/cosh_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/ctc_greedy_decoder_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/ctc_greedy_decoder_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/ctc_greedy_decoder_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/ctc_greedy_decoder_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/custom_op_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/custom_op_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/custom_op_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/custom_op_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/deconvolution_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/deconvolution_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/deconvolution_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/deconvolution_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/deformable_convolution_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/deformable_convolution_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/deformable_convolution_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/deformable_convolution_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/deformable_psroi_pooling_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/deformable_psroi_pooling_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/deformable_psroi_pooling_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/deformable_psroi_pooling_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/depth_to_space_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/depth_to_space_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/depth_to_space_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/depth_to_space_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/detection_output_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/detection_output_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/detection_output_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/detection_output_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/dft.cpp b/src/tests/functional/inference_engine/ngraph_reader/dft.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/dft.cpp rename to src/tests/functional/inference_engine/ngraph_reader/dft.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/divide_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/divide_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/divide_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/divide_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/einsum_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/einsum_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/einsum_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/einsum_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/elu_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/equal_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/equal_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/equal_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/equal_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/erf_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/erf_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/erf_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/erf_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/exp_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/exp_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/exp_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/exp_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/fake_quantize_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/fake_quantize_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/fake_quantize_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/fake_quantize_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/floor_mod_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/floor_mod_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/floor_mod_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/floor_mod_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/floor_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/floor_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/floor_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/floor_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/fusion_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/fusion_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/fusion_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/fusion_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/gather_elements_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/gather_elements_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/gather_elements_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/gather_elements_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/gather_nd_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/gather_nd_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/gather_nd_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/gather_nd_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/gather_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/gather_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/gather_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/gather_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/gather_tree_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/gather_tree_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/gather_tree_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/gather_tree_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/gelu_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/gelu_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/gelu_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/gelu_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/greater_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/greater_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/greater_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/greater_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/grn_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/grn_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/grn_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/grn_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/group_convolution_backprop_data_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/group_convolution_backprop_data_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/group_convolution_backprop_data_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/group_convolution_backprop_data_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/group_convolution_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/group_convolution_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/group_convolution_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/group_convolution_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/hard_sigmoid_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/hard_sigmoid_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/hard_sigmoid_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/hard_sigmoid_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/hsigmoid_test.cpp b/src/tests/functional/inference_engine/ngraph_reader/hsigmoid_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/hsigmoid_test.cpp rename to src/tests/functional/inference_engine/ngraph_reader/hsigmoid_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/idft_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/idft_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/idft_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/idft_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/interpolate_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/interpolate_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/interpolate_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/interpolate_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/less_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/less_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/less_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/less_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/linear_ops_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/linear_ops_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/linear_ops_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/linear_ops_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/log_softmax_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/log_softmax_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/log_softmax_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/log_softmax_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/log_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/log_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/log_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/log_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/logical_and_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/logical_and_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/logical_and_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/logical_and_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/logical_not_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/logical_not_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/logical_not_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/logical_not_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/logical_or_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/logical_or_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/logical_or_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/logical_or_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/logical_xor_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/logical_xor_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/logical_xor_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/logical_xor_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/loop.cpp b/src/tests/functional/inference_engine/ngraph_reader/loop.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/loop.cpp rename to src/tests/functional/inference_engine/ngraph_reader/loop.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/lrn_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/lrn_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/lrn_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/lrn_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/lstm_cell_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/lstm_cell_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/lstm_cell_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/lstm_cell_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/matmul_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/matmul_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/matmul_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/matmul_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/maximum_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/maximum_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/maximum_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/maximum_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/minimum_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/minimum_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/minimum_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/minimum_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/mod_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/mod_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/mod_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/mod_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/multiply_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/multiply_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/multiply_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/multiply_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/mvn_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/mvn_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/mvn_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/mvn_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/neg_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/neg_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/neg_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/neg_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/negative_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/negative_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/negative_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/negative_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/net_reader_test.cpp b/src/tests/functional/inference_engine/ngraph_reader/net_reader_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/net_reader_test.cpp rename to src/tests/functional/inference_engine/ngraph_reader/net_reader_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/network_utils.cpp b/src/tests/functional/inference_engine/ngraph_reader/network_utils.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/network_utils.cpp rename to src/tests/functional/inference_engine/ngraph_reader/network_utils.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/network_utils.hpp b/src/tests/functional/inference_engine/ngraph_reader/network_utils.hpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/network_utils.hpp rename to src/tests/functional/inference_engine/ngraph_reader/network_utils.hpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/ngraph_reader_tests.hpp b/src/tests/functional/inference_engine/ngraph_reader/ngraph_reader_tests.hpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/ngraph_reader_tests.hpp rename to src/tests/functional/inference_engine/ngraph_reader/ngraph_reader_tests.hpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/non_max_suppression_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/non_max_suppression_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/non_max_suppression_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/non_max_suppression_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/normalize_l2_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/normalize_l2_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/normalize_l2_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/normalize_l2_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/not_equal_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/not_equal_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/not_equal_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/not_equal_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/one_hot_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/one_hot_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/one_hot_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/one_hot_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/pad_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/pad_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/pad_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/pad_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/pooling_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/pooling_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/pooling_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/pooling_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/pow_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/pow_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/pow_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/pow_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/prelu_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/prelu_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/prelu_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/prelu_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/prior_box_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/prior_box_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/prior_box_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/prior_box_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/proposal_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/proposal_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/proposal_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/proposal_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/psroi_pooling_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/psroi_pooling_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/psroi_pooling_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/psroi_pooling_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/range_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/range_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/range_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/range_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_logical_and_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reduce_logical_and_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_logical_and_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reduce_logical_and_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_logical_or_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reduce_logical_or_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_logical_or_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reduce_logical_or_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_min_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reduce_min_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_min_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reduce_min_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_prod_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reduce_prod_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_prod_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reduce_prod_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_to_pooling_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reduce_to_pooling_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reduce_to_pooling_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reduce_to_pooling_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/region_yolo_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/region_yolo_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/region_yolo_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/region_yolo_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/relu_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/relu_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/relu_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/relu_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reorg_yolo_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reorg_yolo_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reorg_yolo_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reorg_yolo_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reshape_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reshape_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reshape_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reshape_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/reverse_sequence_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/reverse_sequence_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/reverse_sequence_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/reverse_sequence_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/roi_pooling_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/roi_pooling_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/roi_pooling_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/roi_pooling_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/roll_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/roll_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/roll_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/roll_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/round_test.cpp b/src/tests/functional/inference_engine/ngraph_reader/round_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/round_test.cpp rename to src/tests/functional/inference_engine/ngraph_reader/round_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/select_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/select_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/select_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/select_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/selu_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/selu_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/selu_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/selu_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/sequences.cpp b/src/tests/functional/inference_engine/ngraph_reader/sequences.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/sequences.cpp rename to src/tests/functional/inference_engine/ngraph_reader/sequences.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/shape_of_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/shape_of_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/shape_of_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/shape_of_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/sigmoid_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/sigmoid_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/sigmoid_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/sigmoid_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/sign_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/sign_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/sign_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/sign_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/sin_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/sin_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/sin_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/sin_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/sinh_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/sinh_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/sinh_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/sinh_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/softmax_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/softmax_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/softmax_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/softmax_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/space_to_depth_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/space_to_depth_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/space_to_depth_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/space_to_depth_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/split_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/split_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/split_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/split_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/sqrt_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/sqrt_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/sqrt_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/sqrt_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/squared_difference_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/squared_difference_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/squared_difference_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/squared_difference_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/squeeze_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/squeeze_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/squeeze_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/squeeze_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/strided_slice_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/strided_slice_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/strided_slice_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/strided_slice_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/subtract_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/subtract_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/subtract_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/subtract_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/tan_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/tan_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/tan_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/tan_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/tanh_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/tanh_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/tanh_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/tanh_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/tensor_names.cpp b/src/tests/functional/inference_engine/ngraph_reader/tensor_names.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/tensor_names.cpp rename to src/tests/functional/inference_engine/ngraph_reader/tensor_names.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/ti.cpp b/src/tests/functional/inference_engine/ngraph_reader/ti.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/ti.cpp rename to src/tests/functional/inference_engine/ngraph_reader/ti.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/tile_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/tile_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/tile_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/tile_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/topK_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/topK_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/topK_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/topK_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/transpose_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/transpose_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/transpose_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/transpose_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reader/unsqueeze_tests.cpp b/src/tests/functional/inference_engine/ngraph_reader/unsqueeze_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reader/unsqueeze_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reader/unsqueeze_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/ngraph_reshape_tests.cpp b/src/tests/functional/inference_engine/ngraph_reshape_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ngraph_reshape_tests.cpp rename to src/tests/functional/inference_engine/ngraph_reshape_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/model_support_tests.cpp b/src/tests/functional/inference_engine/onnx_reader/model_support_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/model_support_tests.cpp rename to src/tests/functional/inference_engine/onnx_reader/model_support_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/data/tensor.data b/src/tests/functional/inference_engine/onnx_reader/models/data/tensor.data similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/data/tensor.data rename to src/tests/functional/inference_engine/onnx_reader/models/data/tensor.data diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/onnx_external_data.prototxt b/src/tests/functional/inference_engine/onnx_reader/models/onnx_external_data.prototxt similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/onnx_external_data.prototxt rename to src/tests/functional/inference_engine/onnx_reader/models/onnx_external_data.prototxt diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic.prototxt b/src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic.prototxt similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic.prototxt rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic.prototxt diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic_reverse_fields_order.onnx b/src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic_reverse_fields_order.onnx similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic_reverse_fields_order.onnx rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/basic_reverse_fields_order.onnx diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/more_fields.onnx b/src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/more_fields.onnx similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/more_fields.onnx rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/more_fields.onnx diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/scrambled_keys.prototxt b/src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/scrambled_keys.prototxt similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/scrambled_keys.prototxt rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/scrambled_keys.prototxt diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/varint_on_two_bytes.onnx b/src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/varint_on_two_bytes.onnx similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/supported/varint_on_two_bytes.onnx rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/supported/varint_on_two_bytes.onnx diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/incorrect_onnx_field.onnx b/src/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/incorrect_onnx_field.onnx similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/incorrect_onnx_field.onnx rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/incorrect_onnx_field.onnx diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/no_graph_field.onnx b/src/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/no_graph_field.onnx similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/no_graph_field.onnx rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/no_graph_field.onnx diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/unknown_wire_type.onnx b/src/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/unknown_wire_type.onnx similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/unknown_wire_type.onnx rename to src/tests/functional/inference_engine/onnx_reader/models/support_test/unsupported/unknown_wire_type.onnx diff --git a/inference-engine/tests/functional/inference_engine/onnx_reader/onnx_reader_external_data.cpp b/src/tests/functional/inference_engine/onnx_reader/onnx_reader_external_data.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/onnx_reader/onnx_reader_external_data.cpp rename to src/tests/functional/inference_engine/onnx_reader/onnx_reader_external_data.cpp diff --git a/inference-engine/tests/functional/inference_engine/ov_compiled_model_test.cpp b/src/tests/functional/inference_engine/ov_compiled_model_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ov_compiled_model_test.cpp rename to src/tests/functional/inference_engine/ov_compiled_model_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ov_extension_test.cpp b/src/tests/functional/inference_engine/ov_extension_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ov_extension_test.cpp rename to src/tests/functional/inference_engine/ov_extension_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ov_infer_request_test.cpp b/src/tests/functional/inference_engine/ov_infer_request_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ov_infer_request_test.cpp rename to src/tests/functional/inference_engine/ov_infer_request_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ov_remote_context_test.cpp b/src/tests/functional/inference_engine/ov_remote_context_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ov_remote_context_test.cpp rename to src/tests/functional/inference_engine/ov_remote_context_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ov_remote_tensor.cpp b/src/tests/functional/inference_engine/ov_remote_tensor.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ov_remote_tensor.cpp rename to src/tests/functional/inference_engine/ov_remote_tensor.cpp diff --git a/inference-engine/tests/functional/inference_engine/ov_shared_object_test.cpp b/src/tests/functional/inference_engine/ov_shared_object_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ov_shared_object_test.cpp rename to src/tests/functional/inference_engine/ov_shared_object_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/ov_variable_state_test.cpp b/src/tests/functional/inference_engine/ov_variable_state_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/ov_variable_state_test.cpp rename to src/tests/functional/inference_engine/ov_variable_state_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/paddle_reader/models/relu.pdmodel b/src/tests/functional/inference_engine/paddle_reader/models/relu.pdmodel similarity index 100% rename from inference-engine/tests/functional/inference_engine/paddle_reader/models/relu.pdmodel rename to src/tests/functional/inference_engine/paddle_reader/models/relu.pdmodel diff --git a/inference-engine/tests/functional/inference_engine/paddle_reader/read_paddle_model_test.cpp b/src/tests/functional/inference_engine/paddle_reader/read_paddle_model_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/paddle_reader/read_paddle_model_test.cpp rename to src/tests/functional/inference_engine/paddle_reader/read_paddle_model_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/pre_allocator_test.cpp b/src/tests/functional/inference_engine/pre_allocator_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/pre_allocator_test.cpp rename to src/tests/functional/inference_engine/pre_allocator_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/precomp.hpp b/src/tests/functional/inference_engine/precomp.hpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/precomp.hpp rename to src/tests/functional/inference_engine/precomp.hpp diff --git a/inference-engine/tests/functional/inference_engine/preprocess_test.cpp b/src/tests/functional/inference_engine/preprocess_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/preprocess_test.cpp rename to src/tests/functional/inference_engine/preprocess_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/response_buffer_test.cpp b/src/tests/functional/inference_engine/response_buffer_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/response_buffer_test.cpp rename to src/tests/functional/inference_engine/response_buffer_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/core_config.cpp b/src/tests/functional/inference_engine/serialization/core_config.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/core_config.cpp rename to src/tests/functional/inference_engine/serialization/core_config.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/activation.cpp b/src/tests/functional/inference_engine/serialization/single_layer/activation.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/activation.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/activation.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/batch_norm.cpp b/src/tests/functional/inference_engine/serialization/single_layer/batch_norm.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/batch_norm.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/batch_norm.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/batch_to_space.cpp b/src/tests/functional/inference_engine/serialization/single_layer/batch_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/batch_to_space.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/batch_to_space.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/binary_convolution.cpp b/src/tests/functional/inference_engine/serialization/single_layer/binary_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/binary_convolution.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/binary_convolution.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/broadcast.cpp b/src/tests/functional/inference_engine/serialization/single_layer/broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/broadcast.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/broadcast.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/clamp.cpp b/src/tests/functional/inference_engine/serialization/single_layer/clamp.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/clamp.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/clamp.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/comparison_ops.hpp b/src/tests/functional/inference_engine/serialization/single_layer/comparison_ops.hpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/comparison_ops.hpp rename to src/tests/functional/inference_engine/serialization/single_layer/comparison_ops.hpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/constant.cpp b/src/tests/functional/inference_engine/serialization/single_layer/constant.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/constant.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/constant.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/conversion.cpp b/src/tests/functional/inference_engine/serialization/single_layer/conversion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/conversion.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/conversion.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/convert_color_i420.cpp b/src/tests/functional/inference_engine/serialization/single_layer/convert_color_i420.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/convert_color_i420.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/convert_color_i420.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/convert_color_nv12.cpp b/src/tests/functional/inference_engine/serialization/single_layer/convert_color_nv12.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/convert_color_nv12.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/convert_color_nv12.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/convolution.cpp b/src/tests/functional/inference_engine/serialization/single_layer/convolution.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/convolution.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/convolution.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/convolution_backprop.cpp b/src/tests/functional/inference_engine/serialization/single_layer/convolution_backprop.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/convolution_backprop.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/convolution_backprop.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/ctc_loss.cpp b/src/tests/functional/inference_engine/serialization/single_layer/ctc_loss.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/ctc_loss.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/ctc_loss.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/deformable_convolution.cpp b/src/tests/functional/inference_engine/serialization/single_layer/deformable_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/deformable_convolution.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/deformable_convolution.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/deformable_psroi_pooling.cpp b/src/tests/functional/inference_engine/serialization/single_layer/deformable_psroi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/deformable_psroi_pooling.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/deformable_psroi_pooling.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/depth_to_space.cpp b/src/tests/functional/inference_engine/serialization/single_layer/depth_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/depth_to_space.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/depth_to_space.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/detection_output.cpp b/src/tests/functional/inference_engine/serialization/single_layer/detection_output.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/detection_output.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/detection_output.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/elementwise.cpp b/src/tests/functional/inference_engine/serialization/single_layer/elementwise.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/elementwise.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/elementwise.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/embedding_bag_offsets_sum.cpp b/src/tests/functional/inference_engine/serialization/single_layer/embedding_bag_offsets_sum.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/embedding_bag_offsets_sum.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/embedding_bag_offsets_sum.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/embedding_bag_packed_sum.cpp b/src/tests/functional/inference_engine/serialization/single_layer/embedding_bag_packed_sum.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/embedding_bag_packed_sum.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/embedding_bag_packed_sum.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/embedding_segments_sum.cpp b/src/tests/functional/inference_engine/serialization/single_layer/embedding_segments_sum.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/embedding_segments_sum.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/embedding_segments_sum.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/equal.cpp b/src/tests/functional/inference_engine/serialization/single_layer/equal.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/equal.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/equal.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/extractimagepatches.cpp b/src/tests/functional/inference_engine/serialization/single_layer/extractimagepatches.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/extractimagepatches.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/extractimagepatches.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/gather_tree.cpp b/src/tests/functional/inference_engine/serialization/single_layer/gather_tree.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/gather_tree.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/gather_tree.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/greater.cpp b/src/tests/functional/inference_engine/serialization/single_layer/greater.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/greater.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/greater.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/greater_eq.cpp b/src/tests/functional/inference_engine/serialization/single_layer/greater_eq.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/greater_eq.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/greater_eq.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/grn.cpp b/src/tests/functional/inference_engine/serialization/single_layer/grn.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/grn.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/grn.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/group_convolution.cpp b/src/tests/functional/inference_engine/serialization/single_layer/group_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/group_convolution.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/group_convolution.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/group_convolution_backprop_data.cpp b/src/tests/functional/inference_engine/serialization/single_layer/group_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/group_convolution_backprop_data.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/group_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/less.cpp b/src/tests/functional/inference_engine/serialization/single_layer/less.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/less.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/less.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/less_eq.cpp b/src/tests/functional/inference_engine/serialization/single_layer/less_eq.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/less_eq.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/less_eq.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/logical.cpp b/src/tests/functional/inference_engine/serialization/single_layer/logical.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/logical.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/logical.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/matrix_nms.cpp b/src/tests/functional/inference_engine/serialization/single_layer/matrix_nms.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/matrix_nms.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/matrix_nms.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/minimum_maximum.cpp b/src/tests/functional/inference_engine/serialization/single_layer/minimum_maximum.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/minimum_maximum.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/minimum_maximum.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/multiclass_nms.cpp b/src/tests/functional/inference_engine/serialization/single_layer/multiclass_nms.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/multiclass_nms.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/multiclass_nms.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/mvn.cpp b/src/tests/functional/inference_engine/serialization/single_layer/mvn.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/mvn.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/mvn.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/non_max_suppression.cpp b/src/tests/functional/inference_engine/serialization/single_layer/non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/non_max_suppression.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/non_max_suppression.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/nonzero.cpp b/src/tests/functional/inference_engine/serialization/single_layer/nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/nonzero.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/nonzero.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/normalize_l2.cpp b/src/tests/functional/inference_engine/serialization/single_layer/normalize_l2.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/normalize_l2.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/normalize_l2.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/not_equal.cpp b/src/tests/functional/inference_engine/serialization/single_layer/not_equal.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/not_equal.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/not_equal.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/one_hot.cpp b/src/tests/functional/inference_engine/serialization/single_layer/one_hot.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/one_hot.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/one_hot.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/pad.cpp b/src/tests/functional/inference_engine/serialization/single_layer/pad.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/pad.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/pad.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/pooling.cpp b/src/tests/functional/inference_engine/serialization/single_layer/pooling.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/pooling.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/pooling.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/prelu.cpp b/src/tests/functional/inference_engine/serialization/single_layer/prelu.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/prelu.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/prelu.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/prior_box.cpp b/src/tests/functional/inference_engine/serialization/single_layer/prior_box.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/prior_box.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/prior_box.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/prior_box_clustered.cpp b/src/tests/functional/inference_engine/serialization/single_layer/prior_box_clustered.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/prior_box_clustered.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/prior_box_clustered.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/reduce_ops.cpp b/src/tests/functional/inference_engine/serialization/single_layer/reduce_ops.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/reduce_ops.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/reduce_ops.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/region_yolo.cpp b/src/tests/functional/inference_engine/serialization/single_layer/region_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/region_yolo.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/region_yolo.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/reshape.cpp b/src/tests/functional/inference_engine/serialization/single_layer/reshape.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/reshape.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/reshape.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/result.cpp b/src/tests/functional/inference_engine/serialization/single_layer/result.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/result.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/result.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/scatter_elements_update.cpp b/src/tests/functional/inference_engine/serialization/single_layer/scatter_elements_update.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/scatter_elements_update.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/scatter_elements_update.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/scatter_nd_update.cpp b/src/tests/functional/inference_engine/serialization/single_layer/scatter_nd_update.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/scatter_nd_update.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/scatter_nd_update.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/scatter_update.cpp b/src/tests/functional/inference_engine/serialization/single_layer/scatter_update.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/scatter_update.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/scatter_update.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/select.cpp b/src/tests/functional/inference_engine/serialization/single_layer/select.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/select.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/select.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/shuffle_channels.cpp b/src/tests/functional/inference_engine/serialization/single_layer/shuffle_channels.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/shuffle_channels.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/shuffle_channels.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/slice.cpp b/src/tests/functional/inference_engine/serialization/single_layer/slice.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/slice.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/slice.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/space_to_batch.cpp b/src/tests/functional/inference_engine/serialization/single_layer/space_to_batch.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/space_to_batch.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/space_to_batch.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/space_to_depth.cpp b/src/tests/functional/inference_engine/serialization/single_layer/space_to_depth.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/space_to_depth.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/space_to_depth.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/split.cpp b/src/tests/functional/inference_engine/serialization/single_layer/split.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/split.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/split.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/squeeze.cpp b/src/tests/functional/inference_engine/serialization/single_layer/squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/squeeze.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/squeeze.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/tensor_iterator.cpp b/src/tests/functional/inference_engine/serialization/single_layer/tensor_iterator.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/tensor_iterator.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/tensor_iterator.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/transpose.cpp b/src/tests/functional/inference_engine/serialization/single_layer/transpose.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/transpose.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/transpose.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/unsqueeze.cpp b/src/tests/functional/inference_engine/serialization/single_layer/unsqueeze.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/unsqueeze.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/unsqueeze.cpp diff --git a/inference-engine/tests/functional/inference_engine/serialization/single_layer/variadic_split.cpp b/src/tests/functional/inference_engine/serialization/single_layer/variadic_split.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/serialization/single_layer/variadic_split.cpp rename to src/tests/functional/inference_engine/serialization/single_layer/variadic_split.cpp diff --git a/inference-engine/tests/functional/inference_engine/shared_object_loader_test.cpp b/src/tests/functional/inference_engine/shared_object_loader_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/shared_object_loader_test.cpp rename to src/tests/functional/inference_engine/shared_object_loader_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/skip_tests_config.cpp b/src/tests/functional/inference_engine/skip_tests_config.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/skip_tests_config.cpp rename to src/tests/functional/inference_engine/skip_tests_config.cpp diff --git a/inference-engine/tests/functional/inference_engine/snippets/broadcast_fusion.cpp b/src/tests/functional/inference_engine/snippets/broadcast_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/snippets/broadcast_fusion.cpp rename to src/tests/functional/inference_engine/snippets/broadcast_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/snippets/memory_ops.cpp b/src/tests/functional/inference_engine/snippets/memory_ops.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/snippets/memory_ops.cpp rename to src/tests/functional/inference_engine/snippets/memory_ops.cpp diff --git a/inference-engine/tests/functional/inference_engine/snippets/movebroadcast.cpp b/src/tests/functional/inference_engine/snippets/movebroadcast.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/snippets/movebroadcast.cpp rename to src/tests/functional/inference_engine/snippets/movebroadcast.cpp diff --git a/inference-engine/tests/functional/inference_engine/snippets/registers.cpp b/src/tests/functional/inference_engine/snippets/registers.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/snippets/registers.cpp rename to src/tests/functional/inference_engine/snippets/registers.cpp diff --git a/inference-engine/tests/functional/inference_engine/snippets/tokenization.cpp b/src/tests/functional/inference_engine/snippets/tokenization.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/snippets/tokenization.cpp rename to src/tests/functional/inference_engine/snippets/tokenization.cpp diff --git a/inference-engine/tests/functional/inference_engine/snippets/vector_scalar.cpp b/src/tests/functional/inference_engine/snippets/vector_scalar.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/snippets/vector_scalar.cpp rename to src/tests/functional/inference_engine/snippets/vector_scalar.cpp diff --git a/inference-engine/tests/functional/inference_engine/task_executor_tests.cpp b/src/tests/functional/inference_engine/task_executor_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/task_executor_tests.cpp rename to src/tests/functional/inference_engine/task_executor_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/tensor_desc_test.cpp b/src/tests/functional/inference_engine/tensor_desc_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/tensor_desc_test.cpp rename to src/tests/functional/inference_engine/tensor_desc_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/add_fake_quantize_fusion.cpp b/src/tests/functional/inference_engine/transformations/add_fake_quantize_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/add_fake_quantize_fusion.cpp rename to src/tests/functional/inference_engine/transformations/add_fake_quantize_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/batch_norm_decompositoin.cpp b/src/tests/functional/inference_engine/transformations/batch_norm_decompositoin.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/batch_norm_decompositoin.cpp rename to src/tests/functional/inference_engine/transformations/batch_norm_decompositoin.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/batch_to_space_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/batch_to_space_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/batch_to_space_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/batch_to_space_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/batch_to_space_fusion.cpp b/src/tests/functional/inference_engine/transformations/batch_to_space_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/batch_to_space_fusion.cpp rename to src/tests/functional/inference_engine/transformations/batch_to_space_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/bidirectional_sequences_decomposition.cpp b/src/tests/functional/inference_engine/transformations/bidirectional_sequences_decomposition.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/bidirectional_sequences_decomposition.cpp rename to src/tests/functional/inference_engine/transformations/bidirectional_sequences_decomposition.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/binarize_weights.cpp b/src/tests/functional/inference_engine/transformations/binarize_weights.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/binarize_weights.cpp rename to src/tests/functional/inference_engine/transformations/binarize_weights.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/broadcast_elementwise_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/broadcast_elementwise_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/broadcast_elementwise_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/broadcast_elementwise_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/clamp_fusion.cpp b/src/tests/functional/inference_engine/transformations/clamp_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/clamp_fusion.cpp rename to src/tests/functional/inference_engine/transformations/clamp_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/compare_functions_test.cpp b/src/tests/functional/inference_engine/transformations/compare_functions_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/compare_functions_test.cpp rename to src/tests/functional/inference_engine/transformations/compare_functions_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/compress_float_constants_test.cpp b/src/tests/functional/inference_engine/transformations/compress_float_constants_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/compress_float_constants_test.cpp rename to src/tests/functional/inference_engine/transformations/compress_float_constants_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/const_folding_for_if.cpp b/src/tests/functional/inference_engine/transformations/const_folding_for_if.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/const_folding_for_if.cpp rename to src/tests/functional/inference_engine/transformations/const_folding_for_if.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/const_folding_prior_box.cpp b/src/tests/functional/inference_engine/transformations/const_folding_prior_box.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/const_folding_prior_box.cpp rename to src/tests/functional/inference_engine/transformations/const_folding_prior_box.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/conv_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/conv_fusion_test.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/transformations/conv_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/conv_fusion_test.cpp index 0fa792b6115..c74e01a416e 100644 --- a/inference-engine/tests/functional/inference_engine/transformations/conv_fusion_test.cpp +++ b/src/tests/functional/inference_engine/transformations/conv_fusion_test.cpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include diff --git a/inference-engine/tests/functional/inference_engine/transformations/conv_to_binary_conv.cpp b/src/tests/functional/inference_engine/transformations/conv_to_binary_conv.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/conv_to_binary_conv.cpp rename to src/tests/functional/inference_engine/transformations/conv_to_binary_conv.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_broadcast3_test.cpp b/src/tests/functional/inference_engine/transformations/convert_broadcast3_test.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/transformations/convert_broadcast3_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_broadcast3_test.cpp index 95b54fe0461..061986ccb94 100644 --- a/inference-engine/tests/functional/inference_engine/transformations/convert_broadcast3_test.cpp +++ b/src/tests/functional/inference_engine/transformations/convert_broadcast3_test.cpp @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include "common_test_utils/ngraph_test_utils.hpp" diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_broadcast_to_tiles_test.cpp b/src/tests/functional/inference_engine/transformations/convert_broadcast_to_tiles_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_broadcast_to_tiles_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_broadcast_to_tiles_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_cells_to_cells_ie_test.cpp b/src/tests/functional/inference_engine/transformations/convert_cells_to_cells_ie_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_cells_to_cells_ie_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_cells_to_cells_ie_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_compression_only_to_legacy_test.cpp b/src/tests/functional/inference_engine/transformations/convert_compression_only_to_legacy_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_compression_only_to_legacy_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_compression_only_to_legacy_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_convolution_test.cpp b/src/tests/functional/inference_engine/transformations/convert_convolution_test.cpp similarity index 98% rename from inference-engine/tests/functional/inference_engine/transformations/convert_convolution_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_convolution_test.cpp index 27f173304d1..7414005dc23 100644 --- a/inference-engine/tests/functional/inference_engine/transformations/convert_convolution_test.cpp +++ b/src/tests/functional/inference_engine/transformations/convert_convolution_test.cpp @@ -18,8 +18,8 @@ #include #include #include -#include -#include +#include +#include #include #include "common_test_utils/ngraph_test_utils.hpp" diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_deconvolution_test.cpp b/src/tests/functional/inference_engine/transformations/convert_deconvolution_test.cpp similarity index 96% rename from inference-engine/tests/functional/inference_engine/transformations/convert_deconvolution_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_deconvolution_test.cpp index 242325390d2..5be2ffe257a 100644 --- a/inference-engine/tests/functional/inference_engine/transformations/convert_deconvolution_test.cpp +++ b/src/tests/functional/inference_engine/transformations/convert_deconvolution_test.cpp @@ -18,9 +18,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include "common_test_utils/ngraph_test_utils.hpp" diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_deformable_conv_v8_to_v1_test.cpp b/src/tests/functional/inference_engine/transformations/convert_deformable_conv_v8_to_v1_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_deformable_conv_v8_to_v1_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_deformable_conv_v8_to_v1_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_divide.cpp b/src/tests/functional/inference_engine/transformations/convert_divide.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_divide.cpp rename to src/tests/functional/inference_engine/transformations/convert_divide.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_gather_0d_test.cpp b/src/tests/functional/inference_engine/transformations/convert_gather_0d_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_gather_0d_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_gather_0d_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_gather_downgrade_test.cpp b/src/tests/functional/inference_engine/transformations/convert_gather_downgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_gather_downgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_gather_downgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_gather_to_gather_ie.cpp b/src/tests/functional/inference_engine/transformations/convert_gather_to_gather_ie.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_gather_to_gather_ie.cpp rename to src/tests/functional/inference_engine/transformations/convert_gather_to_gather_ie.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_gather_upgrade_test.cpp b/src/tests/functional/inference_engine/transformations/convert_gather_upgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_gather_upgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_gather_upgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_interpolate1_to_interpolate4_test.cpp b/src/tests/functional/inference_engine/transformations/convert_interpolate1_to_interpolate4_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_interpolate1_to_interpolate4_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_interpolate1_to_interpolate4_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_interpolate_to_legacy.cpp b/src/tests/functional/inference_engine/transformations/convert_interpolate_to_legacy.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_interpolate_to_legacy.cpp rename to src/tests/functional/inference_engine/transformations/convert_interpolate_to_legacy.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_lrn_to_legacy.cpp b/src/tests/functional/inference_engine/transformations/convert_lrn_to_legacy.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_lrn_to_legacy.cpp rename to src/tests/functional/inference_engine/transformations/convert_lrn_to_legacy.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_matmul_test.cpp b/src/tests/functional/inference_engine/transformations/convert_matmul_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_matmul_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_matmul_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_matrix_nms_to_matrix_nms_ie_internal.cpp b/src/tests/functional/inference_engine/transformations/convert_matrix_nms_to_matrix_nms_ie_internal.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_matrix_nms_to_matrix_nms_ie_internal.cpp rename to src/tests/functional/inference_engine/transformations/convert_matrix_nms_to_matrix_nms_ie_internal.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_maxpool_downgrade_test.cpp b/src/tests/functional/inference_engine/transformations/convert_maxpool_downgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_maxpool_downgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_maxpool_downgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_maxpool_upgrade_test.cpp b/src/tests/functional/inference_engine/transformations/convert_maxpool_upgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_maxpool_upgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_maxpool_upgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_multiclass_nms_to_multiclass_nms_ie_internal.cpp b/src/tests/functional/inference_engine/transformations/convert_multiclass_nms_to_multiclass_nms_ie_internal.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_multiclass_nms_to_multiclass_nms_ie_internal.cpp rename to src/tests/functional/inference_engine/transformations/convert_multiclass_nms_to_multiclass_nms_ie_internal.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_mvn1_to_mvn6_test.cpp b/src/tests/functional/inference_engine/transformations/convert_mvn1_to_mvn6_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_mvn1_to_mvn6_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_mvn1_to_mvn6_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_ngraph_to_cnn_network_tests.cpp b/src/tests/functional/inference_engine/transformations/convert_ngraph_to_cnn_network_tests.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/transformations/convert_ngraph_to_cnn_network_tests.cpp rename to src/tests/functional/inference_engine/transformations/convert_ngraph_to_cnn_network_tests.cpp index 26ea74e7f97..524570623b3 100644 --- a/inference-engine/tests/functional/inference_engine/transformations/convert_ngraph_to_cnn_network_tests.cpp +++ b/src/tests/functional/inference_engine/transformations/convert_ngraph_to_cnn_network_tests.cpp @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_nms5_test.cpp b/src/tests/functional/inference_engine/transformations/convert_nms5_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_nms5_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_nms5_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_nms_gather_path_to_unsigned_test.cpp b/src/tests/functional/inference_engine/transformations/convert_nms_gather_path_to_unsigned_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_nms_gather_path_to_unsigned_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_nms_gather_path_to_unsigned_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_internal_test.cpp b/src/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_internal_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_internal_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_internal_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_test.cpp b/src/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_nms_to_nms_ie_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_pad_to_group_conv.cpp b/src/tests/functional/inference_engine/transformations/convert_pad_to_group_conv.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_pad_to_group_conv.cpp rename to src/tests/functional/inference_engine/transformations/convert_pad_to_group_conv.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_pad_to_legacy.cpp b/src/tests/functional/inference_engine/transformations/convert_pad_to_legacy.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_pad_to_legacy.cpp rename to src/tests/functional/inference_engine/transformations/convert_pad_to_legacy.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_precision.cpp b/src/tests/functional/inference_engine/transformations/convert_precision.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_precision.cpp rename to src/tests/functional/inference_engine/transformations/convert_precision.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_previous_nms_to_nms_5.cpp b/src/tests/functional/inference_engine/transformations/convert_previous_nms_to_nms_5.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_previous_nms_to_nms_5.cpp rename to src/tests/functional/inference_engine/transformations/convert_previous_nms_to_nms_5.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_prior_box_v8_to_v0_test.cpp b/src/tests/functional/inference_engine/transformations/convert_prior_box_v8_to_v0_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_prior_box_v8_to_v0_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_prior_box_v8_to_v0_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_quantize_dequantize.cpp b/src/tests/functional/inference_engine/transformations/convert_quantize_dequantize.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_quantize_dequantize.cpp rename to src/tests/functional/inference_engine/transformations/convert_quantize_dequantize.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_reduce_to_pooling_test.cpp b/src/tests/functional/inference_engine/transformations/convert_reduce_to_pooling_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_reduce_to_pooling_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_reduce_to_pooling_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_scatter_elements_to_scatter_test.cpp b/src/tests/functional/inference_engine/transformations/convert_scatter_elements_to_scatter_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_scatter_elements_to_scatter_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_scatter_elements_to_scatter_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_sequences_to_sequences_ie_test.cpp b/src/tests/functional/inference_engine/transformations/convert_sequences_to_sequences_ie_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_sequences_to_sequences_ie_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_sequences_to_sequences_ie_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_shapeof3.cpp b/src/tests/functional/inference_engine/transformations/convert_shapeof3.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_shapeof3.cpp rename to src/tests/functional/inference_engine/transformations/convert_shapeof3.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_shuffle_channels3_test.cpp b/src/tests/functional/inference_engine/transformations/convert_shuffle_channels3_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_shuffle_channels3_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_shuffle_channels3_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_softmax_downgrade_test.cpp b/src/tests/functional/inference_engine/transformations/convert_softmax_downgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_softmax_downgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_softmax_downgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_softmax_upgrade_test.cpp b/src/tests/functional/inference_engine/transformations/convert_softmax_upgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_softmax_upgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_softmax_upgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_strided_slice_to_crop_test.cpp b/src/tests/functional/inference_engine/transformations/convert_strided_slice_to_crop_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_strided_slice_to_crop_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_strided_slice_to_crop_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_ti_to_sequences_test.cpp b/src/tests/functional/inference_engine/transformations/convert_ti_to_sequences_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_ti_to_sequences_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_ti_to_sequences_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_tile_to_legacy.cpp b/src/tests/functional/inference_engine/transformations/convert_tile_to_legacy.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_tile_to_legacy.cpp rename to src/tests/functional/inference_engine/transformations/convert_tile_to_legacy.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_topk3_test.cpp b/src/tests/functional/inference_engine/transformations/convert_topk3_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_topk3_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_topk3_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/convert_topk_test.cpp b/src/tests/functional/inference_engine/transformations/convert_topk_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/convert_topk_test.cpp rename to src/tests/functional/inference_engine/transformations/convert_topk_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/depth_to_space_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/depth_to_space_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/depth_to_space_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/depth_to_space_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/detection_output_downgrade_test.cpp b/src/tests/functional/inference_engine/transformations/detection_output_downgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/detection_output_downgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/detection_output_downgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/detection_output_upgrade_test.cpp b/src/tests/functional/inference_engine/transformations/detection_output_upgrade_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/detection_output_upgrade_test.cpp rename to src/tests/functional/inference_engine/transformations/detection_output_upgrade_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/dilated_convolution_converter.cpp b/src/tests/functional/inference_engine/transformations/dilated_convolution_converter.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/dilated_convolution_converter.cpp rename to src/tests/functional/inference_engine/transformations/dilated_convolution_converter.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/disable_shapeof_constant_folding_tests.cpp b/src/tests/functional/inference_engine/transformations/disable_shapeof_constant_folding_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/disable_shapeof_constant_folding_tests.cpp rename to src/tests/functional/inference_engine/transformations/disable_shapeof_constant_folding_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/divide_fusion.cpp b/src/tests/functional/inference_engine/transformations/divide_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/divide_fusion.cpp rename to src/tests/functional/inference_engine/transformations/divide_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/division_by_zero_fp16_resolver_test.cpp b/src/tests/functional/inference_engine/transformations/division_by_zero_fp16_resolver_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/division_by_zero_fp16_resolver_test.cpp rename to src/tests/functional/inference_engine/transformations/division_by_zero_fp16_resolver_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/dropout_with_random_uniform_replacer_test.cpp b/src/tests/functional/inference_engine/transformations/dropout_with_random_uniform_replacer_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/dropout_with_random_uniform_replacer_test.cpp rename to src/tests/functional/inference_engine/transformations/dropout_with_random_uniform_replacer_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/eliminate_split_test.cpp b/src/tests/functional/inference_engine/transformations/eliminate_split_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/eliminate_split_test.cpp rename to src/tests/functional/inference_engine/transformations/eliminate_split_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/eliminate_unsqueeze_gather.cpp b/src/tests/functional/inference_engine/transformations/eliminate_unsqueeze_gather.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/eliminate_unsqueeze_gather.cpp rename to src/tests/functional/inference_engine/transformations/eliminate_unsqueeze_gather.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/fc_bias_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/fc_bias_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/fc_bias_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/fc_bias_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/fq_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/fq_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/fq_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/fq_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/fq_mul_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/fq_mul_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/fq_mul_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/fq_mul_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/fq_reshape_fusion.cpp b/src/tests/functional/inference_engine/transformations/fq_reshape_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/fq_reshape_fusion.cpp rename to src/tests/functional/inference_engine/transformations/fq_reshape_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/gather_normalize_negative_indices_test.cpp b/src/tests/functional/inference_engine/transformations/gather_normalize_negative_indices_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/gather_normalize_negative_indices_test.cpp rename to src/tests/functional/inference_engine/transformations/gather_normalize_negative_indices_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/gelu7_downgrade.cpp b/src/tests/functional/inference_engine/transformations/gelu7_downgrade.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/gelu7_downgrade.cpp rename to src/tests/functional/inference_engine/transformations/gelu7_downgrade.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/gelu_fusion.cpp b/src/tests/functional/inference_engine/transformations/gelu_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/gelu_fusion.cpp rename to src/tests/functional/inference_engine/transformations/gelu_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/hsigmoid_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/hsigmoid_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/hsigmoid_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/hsigmoid_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/hsigmoid_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/hsigmoid_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/hsigmoid_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/hsigmoid_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/hswish_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/hswish_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/hswish_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/hswish_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/hswish_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/hswish_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/hswish_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/hswish_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/interpolate_sequence_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/interpolate_sequence_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/interpolate_sequence_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/interpolate_sequence_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/keep_constant_inputs_tests.cpp b/src/tests/functional/inference_engine/transformations/keep_constant_inputs_tests.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/transformations/keep_constant_inputs_tests.cpp rename to src/tests/functional/inference_engine/transformations/keep_constant_inputs_tests.cpp index bb97268d787..526d3b82b78 100644 --- a/inference-engine/tests/functional/inference_engine/transformations/keep_constant_inputs_tests.cpp +++ b/src/tests/functional/inference_engine/transformations/keep_constant_inputs_tests.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include diff --git a/inference-engine/tests/functional/inference_engine/transformations/leaky_relu_fusion.cpp b/src/tests/functional/inference_engine/transformations/leaky_relu_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/leaky_relu_fusion.cpp rename to src/tests/functional/inference_engine/transformations/leaky_relu_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/lin_op_sequence_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/lin_op_sequence_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/lin_op_sequence_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/lin_op_sequence_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/log_softmax_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/log_softmax_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/log_softmax_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/log_softmax_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/low_latency_test.cpp b/src/tests/functional/inference_engine/transformations/low_latency_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/low_latency_test.cpp rename to src/tests/functional/inference_engine/transformations/low_latency_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/low_latency_v2_test.cpp b/src/tests/functional/inference_engine/transformations/low_latency_v2_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/low_latency_v2_test.cpp rename to src/tests/functional/inference_engine/transformations/low_latency_v2_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/make_stateful_test.cpp b/src/tests/functional/inference_engine/transformations/make_stateful_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/make_stateful_test.cpp rename to src/tests/functional/inference_engine/transformations/make_stateful_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/mish_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/mish_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/mish_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/mish_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/mul_add_conversion_test.cpp b/src/tests/functional/inference_engine/transformations/mul_add_conversion_test.cpp similarity index 99% rename from inference-engine/tests/functional/inference_engine/transformations/mul_add_conversion_test.cpp rename to src/tests/functional/inference_engine/transformations/mul_add_conversion_test.cpp index 9358886a63a..008b64f17bc 100644 --- a/inference-engine/tests/functional/inference_engine/transformations/mul_add_conversion_test.cpp +++ b/src/tests/functional/inference_engine/transformations/mul_add_conversion_test.cpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/inference-engine/tests/functional/inference_engine/transformations/mul_fake_quantize_fusion.cpp b/src/tests/functional/inference_engine/transformations/mul_fake_quantize_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/mul_fake_quantize_fusion.cpp rename to src/tests/functional/inference_engine/transformations/mul_fake_quantize_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/mvn6_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/mvn6_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/mvn6_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/mvn6_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/mvn_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/mvn_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/mvn_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/mvn_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/nearest_neighbor_upsampling_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/nearest_neighbor_upsampling_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/nearest_neighbor_upsampling_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/nearest_neighbor_upsampling_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/ngraph_depth_to_space_transform_test.cpp b/src/tests/functional/inference_engine/transformations/ngraph_depth_to_space_transform_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/ngraph_depth_to_space_transform_test.cpp rename to src/tests/functional/inference_engine/transformations/ngraph_depth_to_space_transform_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/ngraph_fq_transpose_test.cpp b/src/tests/functional/inference_engine/transformations/ngraph_fq_transpose_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/ngraph_fq_transpose_test.cpp rename to src/tests/functional/inference_engine/transformations/ngraph_fq_transpose_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/ngraph_mode_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/ngraph_mode_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/ngraph_mode_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/ngraph_mode_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/nop_elimination.cpp b/src/tests/functional/inference_engine/transformations/nop_elimination.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/nop_elimination.cpp rename to src/tests/functional/inference_engine/transformations/nop_elimination.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/normalize_l2_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/normalize_l2_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/normalize_l2_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/normalize_l2_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/normalize_l2_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/normalize_l2_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/normalize_l2_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/normalize_l2_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/optimize_strided_slice_test.cpp b/src/tests/functional/inference_engine/transformations/optimize_strided_slice_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/optimize_strided_slice_test.cpp rename to src/tests/functional/inference_engine/transformations/optimize_strided_slice_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/pad_fusion.cpp b/src/tests/functional/inference_engine/transformations/pad_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/pad_fusion.cpp rename to src/tests/functional/inference_engine/transformations/pad_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/primitives_priority_test.cpp b/src/tests/functional/inference_engine/transformations/primitives_priority_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/primitives_priority_test.cpp rename to src/tests/functional/inference_engine/transformations/primitives_priority_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/pruning_test.cpp b/src/tests/functional/inference_engine/transformations/pruning_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/pruning_test.cpp rename to src/tests/functional/inference_engine/transformations/pruning_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/random_uniform_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/random_uniform_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/random_uniform_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/random_uniform_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/reduce_l1_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/reduce_l1_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/reduce_l1_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/reduce_l1_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/reduce_l2_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/reduce_l2_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/reduce_l2_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/reduce_l2_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/relu_fake_quantize_fusion.cpp b/src/tests/functional/inference_engine/transformations/relu_fake_quantize_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/relu_fake_quantize_fusion.cpp rename to src/tests/functional/inference_engine/transformations/relu_fake_quantize_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/remove_concat_zero_dim_input_test.cpp b/src/tests/functional/inference_engine/transformations/remove_concat_zero_dim_input_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/remove_concat_zero_dim_input_test.cpp rename to src/tests/functional/inference_engine/transformations/remove_concat_zero_dim_input_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/remove_multi_subgraph_op_dangling_params_tests.cpp b/src/tests/functional/inference_engine/transformations/remove_multi_subgraph_op_dangling_params_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/remove_multi_subgraph_op_dangling_params_tests.cpp rename to src/tests/functional/inference_engine/transformations/remove_multi_subgraph_op_dangling_params_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/reshape_fc_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/reshape_fc_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/reshape_fc_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/reshape_fc_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/reshape_sequence_fusion.cpp b/src/tests/functional/inference_engine/transformations/reshape_sequence_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/reshape_sequence_fusion.cpp rename to src/tests/functional/inference_engine/transformations/reshape_sequence_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/ric_fusion_tests.cpp b/src/tests/functional/inference_engine/transformations/ric_fusion_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/ric_fusion_tests.cpp rename to src/tests/functional/inference_engine/transformations/ric_fusion_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/shuffle_channels_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/shuffle_channels_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/shuffle_channels_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/shuffle_channels_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/simplify_ctc_greedy_decoder_seq_len_test.cpp b/src/tests/functional/inference_engine/transformations/simplify_ctc_greedy_decoder_seq_len_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/simplify_ctc_greedy_decoder_seq_len_test.cpp rename to src/tests/functional/inference_engine/transformations/simplify_ctc_greedy_decoder_seq_len_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/simplify_second_input_of_reshape_test.cpp b/src/tests/functional/inference_engine/transformations/simplify_second_input_of_reshape_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/simplify_second_input_of_reshape_test.cpp rename to src/tests/functional/inference_engine/transformations/simplify_second_input_of_reshape_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/simplify_shape_of_sub_graph.cpp b/src/tests/functional/inference_engine/transformations/simplify_shape_of_sub_graph.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/simplify_shape_of_sub_graph.cpp rename to src/tests/functional/inference_engine/transformations/simplify_shape_of_sub_graph.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/softmax_fusion.cpp b/src/tests/functional/inference_engine/transformations/softmax_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/softmax_fusion.cpp rename to src/tests/functional/inference_engine/transformations/softmax_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/softplus_decomposition_test.cpp b/src/tests/functional/inference_engine/transformations/softplus_decomposition_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/softplus_decomposition_test.cpp rename to src/tests/functional/inference_engine/transformations/softplus_decomposition_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/softplus_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/softplus_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/softplus_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/softplus_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/space_to_batch_fusion.cpp b/src/tests/functional/inference_engine/transformations/space_to_batch_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/space_to_batch_fusion.cpp rename to src/tests/functional/inference_engine/transformations/space_to_batch_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/split_concat_pair_to_interpolate_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/split_concat_pair_to_interpolate_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/split_concat_pair_to_interpolate_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/split_concat_pair_to_interpolate_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/split_squeeze_concat_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/split_squeeze_concat_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/split_squeeze_concat_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/split_squeeze_concat_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/sr_mimicking_sbs.cpp b/src/tests/functional/inference_engine/transformations/sr_mimicking_sbs.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/sr_mimicking_sbs.cpp rename to src/tests/functional/inference_engine/transformations/sr_mimicking_sbs.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/sr_proposal_scales.cpp b/src/tests/functional/inference_engine/transformations/sr_proposal_scales.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/sr_proposal_scales.cpp rename to src/tests/functional/inference_engine/transformations/sr_proposal_scales.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/sr_reshape_1d.cpp b/src/tests/functional/inference_engine/transformations/sr_reshape_1d.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/sr_reshape_1d.cpp rename to src/tests/functional/inference_engine/transformations/sr_reshape_1d.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/sr_strided_slice_squeeze.cpp b/src/tests/functional/inference_engine/transformations/sr_strided_slice_squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/sr_strided_slice_squeeze.cpp rename to src/tests/functional/inference_engine/transformations/sr_strided_slice_squeeze.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/sr_sub_graph_ops.cpp b/src/tests/functional/inference_engine/transformations/sr_sub_graph_ops.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/sr_sub_graph_ops.cpp rename to src/tests/functional/inference_engine/transformations/sr_sub_graph_ops.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/strides_optimization.cpp b/src/tests/functional/inference_engine/transformations/strides_optimization.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/strides_optimization.cpp rename to src/tests/functional/inference_engine/transformations/strides_optimization.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/subtract_fusion.cpp b/src/tests/functional/inference_engine/transformations/subtract_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/subtract_fusion.cpp rename to src/tests/functional/inference_engine/transformations/subtract_fusion.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/swish_fusion_test.cpp b/src/tests/functional/inference_engine/transformations/swish_fusion_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/swish_fusion_test.cpp rename to src/tests/functional/inference_engine/transformations/swish_fusion_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/transpose_reshape_elimination_for_matmul.cpp b/src/tests/functional/inference_engine/transformations/transpose_reshape_elimination_for_matmul.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/transpose_reshape_elimination_for_matmul.cpp rename to src/tests/functional/inference_engine/transformations/transpose_reshape_elimination_for_matmul.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/transpose_sinking_test.cpp b/src/tests/functional/inference_engine/transformations/transpose_sinking_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/transpose_sinking_test.cpp rename to src/tests/functional/inference_engine/transformations/transpose_sinking_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/transpose_to_reshape_test.cpp b/src/tests/functional/inference_engine/transformations/transpose_to_reshape_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/transpose_to_reshape_test.cpp rename to src/tests/functional/inference_engine/transformations/transpose_to_reshape_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/type_relaxed_tests.cpp b/src/tests/functional/inference_engine/transformations/type_relaxed_tests.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/type_relaxed_tests.cpp rename to src/tests/functional/inference_engine/transformations/type_relaxed_tests.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/unroll_if_test.cpp b/src/tests/functional/inference_engine/transformations/unroll_if_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/unroll_if_test.cpp rename to src/tests/functional/inference_engine/transformations/unroll_if_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/unroll_loop_test.cpp b/src/tests/functional/inference_engine/transformations/unroll_loop_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/unroll_loop_test.cpp rename to src/tests/functional/inference_engine/transformations/unroll_loop_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/unroll_tensor_iterator_test.cpp b/src/tests/functional/inference_engine/transformations/unroll_tensor_iterator_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/unroll_tensor_iterator_test.cpp rename to src/tests/functional/inference_engine/transformations/unroll_tensor_iterator_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/utils_test.cpp b/src/tests/functional/inference_engine/transformations/utils_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/utils_test.cpp rename to src/tests/functional/inference_engine/transformations/utils_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/weights_dequantize_to_fake_quantize.cpp b/src/tests/functional/inference_engine/transformations/weights_dequantize_to_fake_quantize.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/weights_dequantize_to_fake_quantize.cpp rename to src/tests/functional/inference_engine/transformations/weights_dequantize_to_fake_quantize.cpp diff --git a/inference-engine/tests/functional/inference_engine/transformations/wrap_interpolate_into_transposes_test.cpp b/src/tests/functional/inference_engine/transformations/wrap_interpolate_into_transposes_test.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/transformations/wrap_interpolate_into_transposes_test.cpp rename to src/tests/functional/inference_engine/transformations/wrap_interpolate_into_transposes_test.cpp diff --git a/inference-engine/tests/functional/inference_engine/variable_state.cpp b/src/tests/functional/inference_engine/variable_state.cpp similarity index 100% rename from inference-engine/tests/functional/inference_engine/variable_state.cpp rename to src/tests/functional/inference_engine/variable_state.cpp diff --git a/inference-engine/tests/functional/plugin/CMakeLists.txt b/src/tests/functional/plugin/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/CMakeLists.txt rename to src/tests/functional/plugin/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/conformance/CMakeLists.txt b/src/tests/functional/plugin/conformance/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/CMakeLists.txt rename to src/tests/functional/plugin/conformance/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/CMakeLists.txt b/src/tests/functional/plugin/conformance/subgraphs_dumper/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/CMakeLists.txt rename to src/tests/functional/plugin/conformance/subgraphs_dumper/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/README.md b/src/tests/functional/plugin/conformance/subgraphs_dumper/README.md similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/README.md rename to src/tests/functional/plugin/conformance/subgraphs_dumper/README.md diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/gflag_config.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/gflag_config.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/gflag_config.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/gflag_config.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/base_matcher.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/base_matcher.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/base_matcher.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/base_matcher.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/convolutions.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/convolutions.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/convolutions.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/convolutions.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/matchers_manager.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/matchers_manager.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/matchers_manager.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/matchers_manager.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/single_op.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/single_op.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/single_op.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/matchers/single_op.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/op_cloner.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/op_cloner.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/op_cloner.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/op_cloner.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/ops_cache.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/ops_cache.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/ops_cache.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/ops_cache.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/dynamism_resolver.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/dynamism_resolver.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/dynamism_resolver.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/dynamism_resolver.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/model_wrap_struct.hpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/model_wrap_struct.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/model_wrap_struct.hpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/include/utils/model_wrap_struct.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/main.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/main.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/main.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/main.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/base_matcher.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/base_matcher.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/base_matcher.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/base_matcher.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/convolutions.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/convolutions.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/convolutions.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/convolutions.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/matchers_manager.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/matchers_manager.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/matchers_manager.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/matchers_manager.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/single_op.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/single_op.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/single_op.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers/single_op.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/op_cloner.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/op_cloner.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/op_cloner.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/op_cloner.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/ops_cache.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/ops_cache.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/ops_cache.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/ops_cache.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/utils/dynamism_resolver.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/src/utils/dynamism_resolver.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/utils/dynamism_resolver.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/src/utils/dynamism_resolver.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/CMakeLists.txt b/src/tests/functional/plugin/conformance/subgraphs_dumper/tests/CMakeLists.txt similarity index 66% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/CMakeLists.txt rename to src/tests/functional/plugin/conformance/subgraphs_dumper/tests/CMakeLists.txt index e07dea2d455..b56b65c9b1f 100644 --- a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/CMakeLists.txt +++ b/src/tests/functional/plugin/conformance/subgraphs_dumper/tests/CMakeLists.txt @@ -7,9 +7,9 @@ set(TARGET_NAME subgraphsDumperTests) addIeTargetTest( NAME ${TARGET_NAME} ROOT ${CMAKE_CURRENT_SOURCE_DIR} - ADDITIONAL_SOURCE_DIRS ${OpenVINO_SOURCE_DIR}/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers + ADDITIONAL_SOURCE_DIRS ${OpenVINO_SOURCE_DIR}/src/tests/functional/plugin/conformance/subgraphs_dumper/src/matchers INCLUDES - ${OpenVINO_SOURCE_DIR}/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/include + ${OpenVINO_SOURCE_DIR}/src/tests/functional/plugin/conformance/subgraphs_dumper/include $ LINK_LIBRARIES PRIVATE diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/convolutions_matcher.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/convolutions_matcher.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/convolutions_matcher.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/convolutions_matcher.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/generic_single_op.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/generic_single_op.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/generic_single_op.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/generic_single_op.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/matchers_config.cpp b/src/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/matchers_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/matchers_config.cpp rename to src/tests/functional/plugin/conformance/subgraphs_dumper/tests/matchers/matchers_config.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/README.md b/src/tests/functional/plugin/conformance/test_runner/README.md similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/README.md rename to src/tests/functional/plugin/conformance/test_runner/README.md diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/CMakeLists.txt b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/CMakeLists.txt rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/include/api_conformance_helpers.hpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/include/api_conformance_helpers.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/include/api_conformance_helpers.hpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/include/api_conformance_helpers.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/caching/caching_tests.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/caching/caching_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/caching/caching_tests.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/caching/caching_tests.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_graph_info.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_graph_info.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_graph_info.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_graph_info.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_network_base.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_network_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_network_base.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/exec_network_base.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/get_metric.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/get_metric.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/callback.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/callback.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/cancellation.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/cancellation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/cancellation.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/cancellation.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/io_blob.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/io_blob.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/io_blob.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/io_blob.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/multitheading.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/multitheading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/multitheading.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/multitheading.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/perf_counters.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/perf_counters.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/perf_counters.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/perf_counters.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/set_blob_by_type.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/set_blob_by_type.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/set_blob_by_type.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/set_blob_by_type.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/wait.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/wait.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_graph_info.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_graph_info.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_graph_info.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_graph_info.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_network_base.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_network_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_network_base.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/exec_network_base.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/get_metric.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/get_metric.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/callback.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/callback.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/cancellation.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/cancellation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/cancellation.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/cancellation.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/infer_request_dynamic.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/infer_request_dynamic.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/infer_request_dynamic.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/infer_request_dynamic.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/inference_chaining.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/inference_chaining.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/inference_chaining.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/inference_chaining.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/io_tensor.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/io_tensor.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/io_tensor.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/io_tensor.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/multithreading.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/multithreading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/multithreading.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/multithreading.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/perf_counters.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/perf_counters.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/perf_counters.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/perf_counters.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/wait.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/wait.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_plugin/core_integration.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_plugin/core_integration.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/ov_plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/configuration_tests.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/configuration_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/configuration_tests.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/configuration_tests.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_integration.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_integration.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_threading_tests.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_threading_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_threading_tests.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/core_threading_tests.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/life_time.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/life_time.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/life_time.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/life_time.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/version.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/version.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/version.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/plugin/version.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/preprocessing/set_preprocess.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/preprocessing/set_preprocess.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/preprocessing/set_preprocess.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/behavior/preprocessing/set_preprocess.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/core_config.cpp b/src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/core_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/core_config.cpp rename to src/tests/functional/plugin/conformance/test_runner/api_conformance_runner/src/core_config.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/CMakeLists.txt b/src/tests/functional/plugin/conformance/test_runner/conformance_infra/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/CMakeLists.txt rename to src/tests/functional/plugin/conformance/test_runner/conformance_infra/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/include/conformance.hpp b/src/tests/functional/plugin/conformance/test_runner/conformance_infra/include/conformance.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/include/conformance.hpp rename to src/tests/functional/plugin/conformance/test_runner/conformance_infra/include/conformance.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/include/gflag_config.hpp b/src/tests/functional/plugin/conformance/test_runner/conformance_infra/include/gflag_config.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/include/gflag_config.hpp rename to src/tests/functional/plugin/conformance/test_runner/conformance_infra/include/gflag_config.hpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/src/main.cpp b/src/tests/functional/plugin/conformance/test_runner/conformance_infra/src/main.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/src/main.cpp rename to src/tests/functional/plugin/conformance/test_runner/conformance_infra/src/main.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/src/skip_tests_config.cpp b/src/tests/functional/plugin/conformance/test_runner/conformance_infra/src/skip_tests_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/conformance_infra/src/skip_tests_config.cpp rename to src/tests/functional/plugin/conformance/test_runner/conformance_infra/src/skip_tests_config.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/CMakeLists.txt b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/CMakeLists.txt rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/config/config_example.txt b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/config/config_example.txt similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/config/config_example.txt rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/config/config_example.txt diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_cpu.lst b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_cpu.lst similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_cpu.lst rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_cpu.lst diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gna.lst b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gna.lst similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gna.lst rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gna.lst diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gpu.lst b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gpu.lst similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gpu.lst rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_gpu.lst diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_myriad.lst b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_myriad.lst similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_myriad.lst rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_myriad.lst diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_template.lst b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_template.lst similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_template.lst rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/skip_configs/skip_config_template.lst diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/core_config.cpp b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/core_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/core_config.cpp rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/core_config.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/op_impl_check/op_impl_check.cpp b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/op_impl_check/op_impl_check.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/op_impl_check/op_impl_check.cpp rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/op_impl_check/op_impl_check.cpp diff --git a/inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/read_ir/read_ir.cpp b/src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/read_ir/read_ir.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/read_ir/read_ir.cpp rename to src/tests/functional/plugin/conformance/test_runner/op_conformance_runner/src/read_ir/read_ir.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/CMakeLists.txt b/src/tests/functional/plugin/cpu/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/CMakeLists.txt rename to src/tests/functional/plugin/cpu/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/bf16_network_restoring.cpp b/src/tests/functional/plugin/cpu/bfloat16/bf16_network_restoring.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/bf16_network_restoring.cpp rename to src/tests/functional/plugin/cpu/bfloat16/bf16_network_restoring.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/bfloat16_helpers.hpp b/src/tests/functional/plugin/cpu/bfloat16/bfloat16_helpers.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/bfloat16_helpers.hpp rename to src/tests/functional/plugin/cpu/bfloat16/bfloat16_helpers.hpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/concat_in_place.cpp b/src/tests/functional/plugin/cpu/bfloat16/concat_in_place.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/concat_in_place.cpp rename to src/tests/functional/plugin/cpu/bfloat16/concat_in_place.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/conv_add.cpp b/src/tests/functional/plugin/cpu/bfloat16/conv_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/conv_add.cpp rename to src/tests/functional/plugin/cpu/bfloat16/conv_add.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/conv_conv.cpp b/src/tests/functional/plugin/cpu/bfloat16/conv_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/conv_conv.cpp rename to src/tests/functional/plugin/cpu/bfloat16/conv_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/conv_dwconv_relu.cpp b/src/tests/functional/plugin/cpu/bfloat16/conv_dwconv_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/conv_dwconv_relu.cpp rename to src/tests/functional/plugin/cpu/bfloat16/conv_dwconv_relu.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/conv_eltwise_depthwise.cpp b/src/tests/functional/plugin/cpu/bfloat16/conv_eltwise_depthwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/conv_eltwise_depthwise.cpp rename to src/tests/functional/plugin/cpu/bfloat16/conv_eltwise_depthwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/conv_relu_pool_conv_relu_pool.cpp b/src/tests/functional/plugin/cpu/bfloat16/conv_relu_pool_conv_relu_pool.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/conv_relu_pool_conv_relu_pool.cpp rename to src/tests/functional/plugin/cpu/bfloat16/conv_relu_pool_conv_relu_pool.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/elt_max.cpp b/src/tests/functional/plugin/cpu/bfloat16/elt_max.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/elt_max.cpp rename to src/tests/functional/plugin/cpu/bfloat16/elt_max.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/elt_x3.cpp b/src/tests/functional/plugin/cpu/bfloat16/elt_x3.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/elt_x3.cpp rename to src/tests/functional/plugin/cpu/bfloat16/elt_x3.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/faster_100_5_1_1_conv.cpp b/src/tests/functional/plugin/cpu/bfloat16/faster_100_5_1_1_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/faster_100_5_1_1_conv.cpp rename to src/tests/functional/plugin/cpu/bfloat16/faster_100_5_1_1_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/gather_multiply.cpp b/src/tests/functional/plugin/cpu/bfloat16/gather_multiply.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/gather_multiply.cpp rename to src/tests/functional/plugin/cpu/bfloat16/gather_multiply.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/gather_x2_add_mul_relu_concat_matmul.cpp b/src/tests/functional/plugin/cpu/bfloat16/gather_x2_add_mul_relu_concat_matmul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/gather_x2_add_mul_relu_concat_matmul.cpp rename to src/tests/functional/plugin/cpu/bfloat16/gather_x2_add_mul_relu_concat_matmul.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/memory_conv.cpp b/src/tests/functional/plugin/cpu/bfloat16/memory_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/memory_conv.cpp rename to src/tests/functional/plugin/cpu/bfloat16/memory_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/mobilenet_ssd_with_branching.cpp b/src/tests/functional/plugin/cpu/bfloat16/mobilenet_ssd_with_branching.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/mobilenet_ssd_with_branching.cpp rename to src/tests/functional/plugin/cpu/bfloat16/mobilenet_ssd_with_branching.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_conv.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_conv.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_relu_conv.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_relu_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_relu_conv.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_relu_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_scaleshift.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_scaleshift.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_scaleshift.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_eltwise_scaleshift.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_elu_conv.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_elu_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_elu_conv.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_elu_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_relu.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_relu.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_relu.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_concat_relu.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_concat_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_concat_relu.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_concat_relu.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_eltwise.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_eltwise.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed1_eltwise.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed1_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed1_eltwise.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed1_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed2_eltwise.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed2_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed2_eltwise.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x2_mixed2_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x3_eltwise.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x3_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x3_eltwise.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_conv_x3_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_x2_conv_x2_eltwise.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_x2_conv_x2_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_x2_conv_x2_eltwise.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_x2_conv_x2_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_x3_conv_eltwise_relu.cpp b/src/tests/functional/plugin/cpu/bfloat16/scaleshift_x3_conv_eltwise_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/scaleshift_x3_conv_eltwise_relu.cpp rename to src/tests/functional/plugin/cpu/bfloat16/scaleshift_x3_conv_eltwise_relu.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/tail_fp32_optimization.cpp b/src/tests/functional/plugin/cpu/bfloat16/tail_fp32_optimization.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/tail_fp32_optimization.cpp rename to src/tests/functional/plugin/cpu/bfloat16/tail_fp32_optimization.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/bfloat16/topk_inputs_i32.cpp b/src/tests/functional/plugin/cpu/bfloat16/topk_inputs_i32.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/bfloat16/topk_inputs_i32.cpp rename to src/tests/functional/plugin/cpu/bfloat16/topk_inputs_i32.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/extension/extension.cpp b/src/tests/functional/plugin/cpu/extension/extension.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/extension/extension.cpp rename to src/tests/functional/plugin/cpu/extension/extension.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/onnx/quantized_models_tests.cpp b/src/tests/functional/plugin/cpu/onnx/quantized_models_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/onnx/quantized_models_tests.cpp rename to src/tests/functional/plugin/cpu/onnx/quantized_models_tests.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/caching/caching_tests.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/caching/caching_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/caching/caching_tests.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/caching/caching_tests.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_network_base.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_network_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_network_base.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/exec_network_base.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/get_metric.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/get_metric.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/callback.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/callback.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/cancellation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/cancellation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/cancellation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/cancellation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/config.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/config.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/config.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/io_blob.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/io_blob.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/io_blob.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/io_blob.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/multitheading.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/multitheading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/multitheading.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/multitheading.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/wait.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/wait.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/core_integration.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/core_integration.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_graph_info.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_graph_info.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_graph_info.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_graph_info.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_network_base.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_network_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_network_base.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_executable_network/exec_network_base.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp similarity index 93% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp index ff240aa56ed..1becc193cf0 100644 --- a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp +++ b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp @@ -96,7 +96,13 @@ namespace { {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, InferenceEngine::PluginConfigParams::LOG_DEBUG}}, {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, - {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, InferenceEngine::PluginConfigParams::LOG_TRACE}} + {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, InferenceEngine::PluginConfigParams::LOG_TRACE}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "0"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "2"}} }; INSTANTIATE_TEST_SUITE_P(smoke_BehaviorTests, CorrectConfigTests, @@ -149,17 +155,6 @@ namespace { {InferenceEngine::PluginConfigParams::KEY_DYN_BATCH_LIMIT, "NAN"}} }; - const std::vector> multiconf = { - {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, - {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::THROUGHPUT}}, - {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, - {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::LATENCY}}, - {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, - {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::LATENCY}, - {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT_NUM_REQUESTS, "1"}}, - {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}} - }; - const std::vector> autoinconfigs = { {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, "DOESN'T EXIST"}}, @@ -176,7 +171,22 @@ namespace { {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, {InferenceEngine::PluginConfigParams::KEY_DYN_BATCH_LIMIT, "NAN"}}, {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, - {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, "NAN"}} + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "-1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "should be int"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, "NAN"}} + }; + + const std::vector> multiconf = { + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::THROUGHPUT}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::LATENCY}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::LATENCY}, + {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT_NUM_REQUESTS, "1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}} }; INSTANTIATE_TEST_SUITE_P(smoke_BehaviorTests, IncorrectConfigTests, diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_integration.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_integration.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/life_time.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/life_time.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/life_time.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/life_time.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/version.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/version.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/version.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/plugin/version.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/preprocessing.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/preprocessing.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/preprocessing.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/preprocessing.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/dynamic_batch.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/dynamic_batch.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/dynamic_batch.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/dynamic_batch.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/set_blob.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/set_blob.cpp similarity index 71% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/set_blob.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/set_blob.cpp index 5e27ee86b77..641d25dacb8 100644 --- a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/set_blob.cpp +++ b/src/tests/functional/plugin/cpu/shared_tests_instances/blob_tests/set_blob.cpp @@ -8,8 +8,15 @@ using namespace BehaviorTestsDefinitions; using namespace InferenceEngine; -const std::vector precisionSet = {Precision::FP32, Precision::I16, Precision::U8, Precision::I8, Precision::U16, Precision::I32, Precision::BOOL, - Precision::I64, Precision::U64}; +const std::vector precisionSet = { + Precision::U8, Precision::I8, + Precision::U16, Precision::I16, + Precision::U32, Precision::I32, + Precision::U64, Precision::I64, + Precision::BF16, Precision::FP16, + Precision::FP32, Precision::FP64, + Precision::BOOL +}; const std::vector typeSet = {setType::INPUT, setType::OUTPUT, setType::BOTH}; diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/core_config.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/core_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/core_config.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/core_config.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/add_output.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/add_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/add_output.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/add_output.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/keep_assign.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/keep_assign.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/keep_assign.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/keep_assign.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/nms_transformation_for_last_node.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/nms_transformation_for_last_node.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/nms_transformation_for_last_node.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/nms_transformation_for_last_node.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/num_inputs_fusing_bin_conv.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/num_inputs_fusing_bin_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/num_inputs_fusing_bin_conv.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/num_inputs_fusing_bin_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/remove_parameter.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/remove_parameter.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/remove_parameter.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/remove_parameter.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/runtime_precision.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/runtime_precision.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/runtime_precision.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/execution_graph_tests/runtime_precision.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/hetero/synthetic.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/hetero/synthetic.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/hetero/synthetic.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/hetero/synthetic.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp similarity index 98% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp index 776be228425..b612da99596 100644 --- a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp +++ b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp @@ -51,7 +51,7 @@ std::vector testValues = { { std::vector(4 * 2, 2.f), ngraph::element::f32, ngraph::Shape{ 2, 4 } }, { 256ul, {{1}, {1}, {2, 1}, {2, 1}}, {-128.f}, {127.f}, {-128.f, -12.8f}, {127.f, 12.7f} }, { {}, {}, {} }, - "FullyConnected", + "MatMul", "U8" }, // 4D with Dq on weights @@ -61,7 +61,7 @@ std::vector testValues = { { std::vector(4 * 2, 2.f), ngraph::element::i8, ngraph::Shape{ 2, 4 } }, {}, { ngraph::element::f32, {}, {{0.1f, 0.01}, ngraph::element::f32, ngraph::Shape{ 2, 1 }} }, - "FullyConnected", + "MatMul", "U8" }, // 3D with the same values diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/multi/cpu_remote_blob_tests.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/multi/cpu_remote_blob_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/multi/cpu_remote_blob_tests.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/multi/cpu_remote_blob_tests.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/activation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/activation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/activation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/adaptive_pooling.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/adaptive_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/adaptive_pooling.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/adaptive_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_norm.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_norm.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_norm.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_norm.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/binary_convolution.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/binary_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/binary_convolution.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/binary_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/broadcast.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/broadcast.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/broadcast.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/bucketize.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/bucketize.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/bucketize.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/bucketize.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/clamp.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/clamp.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/clamp.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/clamp.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/comparison.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/comparison.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/comparison.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/comparison.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/concat.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/concat.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/concat.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/constant.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/constant.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/constant.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/constant.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/conversion.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/conversion.cpp similarity index 81% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/conversion.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/conversion.cpp index 03be6f86285..868f22db789 100644 --- a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/conversion.cpp +++ b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/conversion.cpp @@ -18,24 +18,26 @@ const std::vector conversionOpTypes = { const std::vector> inShape = {{1, 2, 3, 4}}; const std::vector netPrecisions = { - // Ticket: 59594 - // InferenceEngine::Precision::I4, - InferenceEngine::Precision::I8, - InferenceEngine::Precision::I16, - InferenceEngine::Precision::I32, - InferenceEngine::Precision::I64, - // Ticket: 59594 - // InferenceEngine::Precision::BIN, - // InferenceEngine::Precision::BOOL, - // InferenceEngine::Precision::U4, InferenceEngine::Precision::U8, + InferenceEngine::Precision::I8, InferenceEngine::Precision::U16, - // Ticket: 59594 - // InferenceEngine::Precision::U32, + InferenceEngine::Precision::I16, + InferenceEngine::Precision::U32, + InferenceEngine::Precision::I32, InferenceEngine::Precision::U64, + InferenceEngine::Precision::I64, InferenceEngine::Precision::BF16, InferenceEngine::Precision::FP16, - InferenceEngine::Precision::FP32}; + InferenceEngine::Precision::FP32, + InferenceEngine::Precision::FP64, + InferenceEngine::Precision::BOOL, + InferenceEngine::Precision::MIXED, + InferenceEngine::Precision::Q78, + InferenceEngine::Precision::U4, + InferenceEngine::Precision::I4, + InferenceEngine::Precision::BIN, + InferenceEngine::Precision::CUSTOM, +}; INSTANTIATE_TEST_SUITE_P(smoke_ConversionLayerTest, ConversionLayerTest, diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_i420.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_i420.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_i420.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_i420.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_loss.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_loss.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_loss.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/ctc_loss.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/cum_sum.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/cum_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/cum_sum.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/cum_sum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_psroi_pooling.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_psroi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_psroi_pooling.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/deformable_psroi_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/detection_output.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/detection_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/detection_output.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/detection_output.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/dft.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/dft.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/dft.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/dft.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/eltwise.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/eltwise.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_detection_output.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_detection_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_detection_output.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_detection_output.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_generate_proposals_single_image.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_generate_proposals_single_image.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_generate_proposals_single_image.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_generate_proposals_single_image.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_prior_grid_generator.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_prior_grid_generator.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_prior_grid_generator.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_prior_grid_generator.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_topkrois.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_topkrois.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_topkrois.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/experimental_detectron_topkrois.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_elements.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_elements.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_nd.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_nd.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_nd.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_nd.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_tree.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_tree.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_tree.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gather_tree.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/grn.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/grn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/grn.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/grn.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_cell.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_cell.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_cell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/interpolate.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/interpolate.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/interpolate.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/interpolate.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/invalid_cases/proposal.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/invalid_cases/proposal.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/invalid_cases/proposal.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/invalid_cases/proposal.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/log_softmax.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/log_softmax.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/log_softmax.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/log_softmax.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/logical.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/logical.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/logical.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/logical.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/loop.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/loop.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/loop.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/loop.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lrn.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lrn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lrn.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lrn.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mat_mul.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mat_mul.cpp similarity index 96% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mat_mul.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mat_mul.cpp index 3241ebef007..58b2bbde7bb 100644 --- a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mat_mul.cpp +++ b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mat_mul.cpp @@ -11,7 +11,8 @@ using namespace LayerTestsDefinitions; namespace { const std::vector inputPrecisions = { - InferenceEngine::Precision::FP32 + InferenceEngine::Precision::FP32, + InferenceEngine::Precision::I32, }; const std::vector shapeRelatedParams = { diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/matrix_nms.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/matrix_nms.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/matrix_nms.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/matrix_nms.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/memory.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/memory.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/memory.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/memory.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/multiclass_nms.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/multiclass_nms.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/multiclass_nms.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/multiclass_nms.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mvn.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mvn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mvn.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/mvn.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/nonzero.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/nonzero.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/nonzero.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/one_hot.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/one_hot.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/one_hot.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/one_hot.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pad.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pad.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pad.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pad.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pooling.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pooling.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/proposal.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/proposal.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/proposal.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/proposal.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/psroi_pooling.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/psroi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/psroi_pooling.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/psroi_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/range.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/range.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/range.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/range.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/region_yolo.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/region_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/region_yolo.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/region_yolo.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reshape.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reshape.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reshape.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/result.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/result.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/result.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_align.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_align.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_align.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_align.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_pooling.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_pooling.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roi_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roll.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roll.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roll.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/roll.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_ND_update.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_ND_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_ND_update.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_ND_update.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_update.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_update.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/scatter_update.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/select.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/select.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/select.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/select.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shape_of.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shape_of.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shape_of.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shape_of.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/slice.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/slice.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/slice.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/slice.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/softmax.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/softmax.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/softmax.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/softmax.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/split.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/split.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/split.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/strided_slice.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/strided_slice.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/strided_slice.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/strided_slice.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tensor_iterator.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tensor_iterator.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tensor_iterator.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tensor_iterator.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tile.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tile.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tile.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/tile.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/topk.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/topk.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/topk.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/topk.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/transpose.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/transpose.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/transpose.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/transpose.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/variadic_split.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/variadic_split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/variadic_split.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/variadic_split.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/skip_tests_config.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/skip_tests_config.cpp similarity index 88% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/skip_tests_config.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/skip_tests_config.cpp index 55772b5938a..cfdb50a9208 100644 --- a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/skip_tests_config.cpp +++ b/src/tests/functional/plugin/cpu/shared_tests_instances/skip_tests_config.cpp @@ -104,17 +104,6 @@ std::vector disabledTestPatterns() { // CPU plugin does not support some precisions R"(smoke_CachingSupportCase_CPU/LoadNetworkCacheTestBase.CompareWithRefImpl/ReadConcatSplitAssign_f32_batch1_CPU)", - // CPU plugin does not support some precisions - R"(.*Behavior.*OVExecGraphImportExportTest.*elementType=(i8|u32).*)", - R"(.*Behavior.*OVExecGraphImportExportTest.*elementType=(f16).*)", - R"(.*EltwiseLayerTest.*NetType=f16.*)", - - // TODO: CVS-66526 overrides i/o precisions in execution graph - // as WA we used GetInputsInfo() precisions instead of ngraph ones - // R"(.*smoke_BehaviorTests.*OVExecGraphImportExportTest.*importExportedFunction.*type=(i16|u16).*)", - // R"(.*smoke_BehaviorTests.*OVExecGraphImportExportTest.*importExportedFunction.*type=(i64|u64).*)", - // R"(.*smoke_BehaviorTests.*OVExecGraphImportExportTest.*importExportedIENetwork.*type=(i16|u16).*)", - // R"(.*smoke_BehaviorTests.*OVExecGraphImportExportTest.*importExportedIENetwork.*type=(i64|u64).*)", // CPU does not support dynamic rank // Issue: CVS-66778 @@ -138,11 +127,6 @@ std::vector disabledTestPatterns() { R"(.*smoke_PrePostProcess.*two_inputs_trivial.*)", // TODO: CVS-67255 R"(smoke_If.*SimpleIf2OutTest.*)", - // TODO: CVS-68525 - R"(.*CanSetInBlobWithDifferentPrecision/netPRC=(I4|U4).*)", - R"(.*CanSetInBlobWithDifferentPrecision/netPRC=BIN.*)", - R"(.*CanSetOutBlobWithDifferentPrecision/netPRC=(I4|U4).*)", - R"(.*CanSetOutBlobWithDifferentPrecision/netPRC=BIN.*)", // Issue: 69086 // need to add support convert BIN -> FP32 @@ -152,6 +136,7 @@ std::vector disabledTestPatterns() { // bad accuracy R"(.*smoke_FakeQuantizeLayerCPUTest_Decompos. *IS=_TS=\(\(4\.5\.6\.7\)\)_RS=\(\(1\.1\.6\.1\)\)_\(\(1\.5\.6\.1\)\)_\(\(1\.1\.1\.1\)\)_\(\(1\.1\.6\.1\)\).*)", + // Issue: 71121 R"(.*smoke_Proposal*.*TS=\(2.*)", // TODO : CVS-69533 @@ -165,6 +150,22 @@ std::vector disabledTestPatterns() { // Failure happened on win and macos for current seeds. R"(.*CTCLossLayerTest.*CMR=1.*)", R"(.*CTCLossLayerCPUTest.*ctcMergeRepeated=1.*)", + // Issue: 71756 + R"(.*Deconv_.*D_(Blocked|DW|1x1)_.*DeconvolutionLayerCPUTest\.CompareWithRefs.*inFmts=(nChw16c|nCdhw16c)_outFmts=(nChw16c|nCdhw16c)_primitive=jit_avx512_.*Fused=Multiply\(PerChannel\)\.Add\(PerChannel\).*)", + R"(.*smoke_GroupDeconv_(2|3)D_Blocked_BF16.*S=(\(2\.2\)|\(2\.2\.2\))_PB=(\(0\.0\)|\(0\.0\.0\))_PE=(\(0\.0\)|\(0\.0\.0\))_D=(\(1\.1\)|\(1\.1\.1\))_.*_O=64_G=4.*)", + // Issue: 72150 + R"(.*smoke_SetBlobCPU/SetBlobTest.CompareWithRefs/Type=.*_Device=CPU_PrecisionInNet=BOOL.*)", + // Issue: 59594 + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*BOOL.*)", + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*MIXED.*)", + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*Q78.*)", + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*U4.*)", + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*I4.*)", + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*BIN.*)", + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*CUSTOM.*)", + R"(smoke_ConversionLayerTest/ConversionLayerTest.CompareWithRefs.*UNSPECIFIED.*)", + // Issue: + R"(.*smoke_VariadicSplit4D_CPU_zero_dims.*)", }; #define FIX_62820 0 diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_add.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_add.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_add.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_bert.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_bert.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_bert.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_bert.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_gelu.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_gelu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_gelu.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/codegen_gelu.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/concat_resize_concat.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/concat_resize_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/concat_resize_concat.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/concat_resize_concat.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/constant_result.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/constant_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/constant_result.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/constant_result.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_eltwise_fusion.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_eltwise_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_eltwise_fusion.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_eltwise_fusion.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_strides_opt.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_strides_opt.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_strides_opt.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/conv_strides_opt.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/convert_pad_to_group_conv.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/convert_pad_to_group_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/convert_pad_to_group_conv.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/convert_pad_to_group_conv.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mul_conv_fusion.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mul_conv_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mul_conv_fusion.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mul_conv_fusion.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiply_add.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiply_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiply_add.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/multiply_add.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mvn_multiply_add.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mvn_multiply_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mvn_multiply_add.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/mvn_multiply_add.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/parameter_result.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/parameter_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/parameter_result.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/parameter_result.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/preprocess.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/preprocess.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/preprocess.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/preprocess.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_mat_mul.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_mat_mul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_mat_mul.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/quantized_mat_mul.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/range_add.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/range_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/range_add.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/range_add.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/relu_shape_of.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/relu_shape_of.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/relu_shape_of.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/relu_shape_of.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/simple_if.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/simple_if.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/simple_if.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/simple_if.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_concat_memory.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_concat_memory.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_concat_memory.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_concat_memory.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/tensor_names.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/tensor_names.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/tensor_names.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/tensor_names.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/variadic_split_pad.cpp b/src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/variadic_split_pad.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/variadic_split_pad.cpp rename to src/tests/functional/plugin/cpu/shared_tests_instances/subgraph_tests/variadic_split_pad.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/activation.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/activation.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/activation.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/adaptive_pooling.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/adaptive_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/adaptive_pooling.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/adaptive_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/batch_to_space.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/batch_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/batch_to_space.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/batch_to_space.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/broadcast.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/broadcast.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/broadcast.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/bucketize.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/bucketize.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/bucketize.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/bucketize.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/concat.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/concat.cpp similarity index 92% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/concat.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/concat.cpp index d7281975f06..81094e09f1b 100644 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/concat.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/concat.cpp @@ -49,7 +49,21 @@ public: return result.str(); } + void compare(const std::vector &expected, const std::vector &actual) override { + if (actual.front().get_size() == 0) { + ASSERT_EQ(0, expected.front().get_size()); + for (const auto& shape : targetStaticShapes[inferNum]) { + ASSERT_EQ(shape_size(shape), 0); + } + } else { + SubgraphBaseTest::compare(expected, actual); + } + inferNum++; + } + protected: + size_t inferNum = 0; + void SetUp() override { targetDevice = CommonTestUtils::DEVICE_CPU; @@ -77,7 +91,7 @@ TEST_P(ConcatLayerCPUTest, CompareWithRefs) { SKIP_IF_CURRENT_TEST_IS_DISABLED() run(); -// CheckPluginRelatedresult(executableNetwork, "Concatenation"); + CheckPluginRelatedResults(executableNetwork, "Concatenation"); } namespace { @@ -150,9 +164,9 @@ INSTANTIATE_TEST_SUITE_P(smoke_Concat4D_CPU_Block_dynamic_axis_1, ConcatLayerCPU const std::vector> inputShapes4D_axis1 = { { - {{-1, -1, -1, -1}, {{2, 32, 5, 7}, {1, 18, 10, 2}, {3, 8, 1, 8}}}, - {{-1, -1, -1, -1}, {{2, 16, 5, 7}, {1, 5, 10, 2}, {3, 3, 1, 8}}}, - {{-1, -1, -1, -1}, {{2, 64, 5, 7}, {1, 45, 10, 2}, {3, 1, 1, 8}}} + {{-1, -1, -1, -1}, {{2, 32, 0, 7}, {2, 32, 5, 7}, {2, 32, 5, 7}, {1, 18, 10, 2}, {2, 32, 5, 7}, {3, 8, 1, 8}, {2, 0, 5, 7}}}, + {{-1, -1, -1, -1}, {{2, 16, 0, 7}, {2, 16, 5, 7}, {2, 16, 5, 7}, {1, 5, 10, 2}, {2, 0, 5, 7}, {3, 3, 1, 8}, {2, 16, 5, 7}}}, + {{-1, -1, -1, -1}, {{2, 64, 0, 7}, {2, 64, 5, 7}, {2, 0, 5, 7}, {1, 45, 10, 2}, {2, 64, 5, 7}, {3, 1, 1, 8}, {2, 64, 5, 7}}} }, { {{{1, 3}, {8, 32}, {1, 10}, {2, 8}}, {{2, 32, 5, 7}, {1, 18, 10, 2}, {3, 8, 1, 8}}}, @@ -447,10 +461,13 @@ INSTANTIATE_TEST_SUITE_P(smoke_Concat5D_CPU_dynamic_axis_4, ConcatLayerCPUTest, ::testing::Values(planar_5D_ref, planarChannels_5D)), ConcatLayerCPUTest::getTestCaseName); -const std::vector> inputShapes_byBatch = { +const std::vector> inputShapes_byBatch_static = { static_shapes_to_test_representation({{5, 2, 2, 2}, {2, 2, 2, 2}}), static_shapes_to_test_representation({{1, 3, 5}, {3, 3, 5}}), - static_shapes_to_test_representation({{4, 3, 2}, {1, 3, 2}}), + static_shapes_to_test_representation({{4, 3, 2}, {1, 3, 2}}) +}; + +const std::vector> inputShapes_byBatch_dynamic = { // 5D { {{-1, -1, -1, -1, -1}, {{10, 32, 4, 5, 5}, {4, 7, 1, 1, 3}, {3, 20, 7, 9, 1}, }}, @@ -475,14 +492,22 @@ const std::vector> inputShapes_byBatch = { } }; -INSTANTIATE_TEST_SUITE_P(smoke_Concat_byBatch, ConcatLayerCPUTest, +INSTANTIATE_TEST_SUITE_P(smoke_Concat_byBatch_static, ConcatLayerCPUTest, ::testing::Combine( ::testing::Values(0), - ::testing::ValuesIn(inputShapes_byBatch), + ::testing::ValuesIn(inputShapes_byBatch_static), ::testing::ValuesIn(netPrecisions), ::testing::Values(CPUSpecificParams{{}, {}, {}, "unknown"})), ConcatLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_Concat_byBatch_dynamic, ConcatLayerCPUTest, + ::testing::Combine( + ::testing::Values(0), + ::testing::ValuesIn(inputShapes_byBatch_dynamic), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(CPUSpecificParams{{}, {}, {}, "ref"})), + ConcatLayerCPUTest::getTestCaseName); + const std::vector> inputShapes3D_axis1 = { static_shapes_to_test_representation({{2, 4, 5}, {2, 4, 5}}), { @@ -549,11 +574,14 @@ INSTANTIATE_TEST_SUITE_P(smoke_Concat_2D_axis1, ConcatLayerCPUTest, ::testing::Values(CPUSpecificParams{{}, {}, {}, "ref"})), ConcatLayerCPUTest::getTestCaseName); -const std::vector> inputShapes1D = { +const std::vector> inputShapes1D_static = { static_shapes_to_test_representation({ov::Shape{5}, ov::Shape{5}}), static_shapes_to_test_representation({ov::Shape{2}, ov::Shape{2}}), static_shapes_to_test_representation({ov::Shape{1}, ov::Shape{1}}), - static_shapes_to_test_representation({ov::Shape{3}, ov::Shape{3}}), + static_shapes_to_test_representation({ov::Shape{3}, ov::Shape{3}}) +}; + +const std::vector> inputShapes1D_dynamic = { { {{-1}, {{19}, {8}, {5}}}, {{-1}, {{19}, {8}, {5}}}, @@ -566,14 +594,22 @@ const std::vector> inputShapes1D = { }, }; -INSTANTIATE_TEST_SUITE_P(smoke_Concat_1D, ConcatLayerCPUTest, +INSTANTIATE_TEST_SUITE_P(smoke_Concat_1D_static, ConcatLayerCPUTest, ::testing::Combine( ::testing::Values(0), - ::testing::ValuesIn(inputShapes1D), + ::testing::ValuesIn(inputShapes1D_static), ::testing::ValuesIn(netPrecisions), ::testing::Values(CPUSpecificParams{{}, {}, {}, "unknown"})), ConcatLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_Concat_1D_dynamic, ConcatLayerCPUTest, + ::testing::Combine( + ::testing::Values(0), + ::testing::ValuesIn(inputShapes1D_dynamic), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(CPUSpecificParams{{}, {}, {}, "ref"})), + ConcatLayerCPUTest::getTestCaseName); + // ============================================== inPlace cases ============================================ INSTANTIATE_TEST_SUITE_P(concat_Concat4D_CPU_Block8inPlace, ConcatLayerCPUTest, ::testing::Combine( diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/conversion.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/conversion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/conversion.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/conversion.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/convert_to_plugin_specific_node.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/convert_to_plugin_specific_node.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/convert_to_plugin_specific_node.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/convert_to_plugin_specific_node.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/convolution.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/convolution.cpp similarity index 97% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/convolution.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/convolution.cpp index e71139b48db..add0d6d08ae 100755 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/convolution.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/convolution.cpp @@ -974,6 +974,43 @@ INSTANTIATE_TEST_SUITE_P(Conv_PlainToBlocked_2D_BF16_dilated, ConvolutionLayerCP ::testing::Values(cpuEmptyPluginConfig)), ConvolutionLayerCPUTest::getTestCaseName); +/* ============= Reorder + Convolution ============= */ +const auto convParams_Reorder_2D = ::testing::Combine( + ::testing::Values(SizeVector{1, 1}), + ::testing::Values(SizeVector{2, 2}), + ::testing::Values(std::vector{0, 0}), + ::testing::Values(std::vector{0, 0}), + ::testing::Values(SizeVector{1, 1}), + ::testing::Values(64), + ::testing::Values(ngraph::op::PadType::EXPLICIT) +); + +std::vector inputShapes_Reorder_2D = { + { + // dynamic shape + { -1, 32, -1, -1 }, + // target static shapes + { + { 1, 32, 39, 40 }, + { 2, 32, 20, 20} + } + } +}; + +INSTANTIATE_TEST_SUITE_P(smoke_reorder_Conv_2D, ConvolutionLayerCPUTest, + ::testing::Combine( + ::testing::Combine( + convParams_Reorder_2D, + ::testing::Values(ElementType::f32), + ::testing::Values(ElementType::undefined), + ::testing::Values(ElementType::undefined), + ::testing::ValuesIn(inputShapes_Reorder_2D), + ::testing::Values(CommonTestUtils::DEVICE_CPU)), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1})), + ::testing::Values(emptyFusingSpec), + ::testing::Values(cpuEmptyPluginConfig)), + ConvolutionLayerCPUTest::getTestCaseName); + /* ============= Convolution (3D) ============= */ const auto convParams_ExplicitPadding_3D = ::testing::Combine( ::testing::ValuesIn(kernels3d), diff --git a/src/tests/functional/plugin/cpu/single_layer_tests/convolution_backprop_data.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/convolution_backprop_data.cpp new file mode 100755 index 00000000000..52d50c6f07e --- /dev/null +++ b/src/tests/functional/plugin/cpu/single_layer_tests/convolution_backprop_data.cpp @@ -0,0 +1,712 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "test_utils/cpu_test_utils.hpp" +#include "test_utils/convolution_params.hpp" +#include "test_utils/fusing_test_utils.hpp" +#include "shared_test_classes/base/ov_subgraph.hpp" +#include "functional_test_utils/ov_tensor_utils.hpp" +#include "ngraph_functions/builders.hpp" +#include +#include "openvino/core/preprocess/pre_post_process.hpp" + +using namespace CPUTestUtils; +using namespace ov::test; + +namespace CPULayerTestsDefinitions { + +using DeconvSpecParams = LayerTestsDefinitions::convBackpropDataSpecificParams; + +using DeconvInputData = std::tuple>>; // values for 'output_shape' + +using DeconvLayerCPUTestParamsSet = std::tuple>; + +class DeconvolutionLayerCPUTest : public testing::WithParamInterface, + virtual public SubgraphBaseTest, public CpuTestWithFusing { +public: + static std::string getTestCaseName(testing::TestParamInfo obj) { + DeconvSpecParams basicParamsSet; + DeconvInputData inputData; + ElementType prec; + fusingSpecificParams fusingParams; + CPUSpecificParams cpuParams; + std::map additionalConfig; + std::tie(basicParamsSet, inputData, prec, fusingParams, cpuParams, additionalConfig) = obj.param; + + ngraph::op::PadType padType; + InferenceEngine::SizeVector kernel, stride, dilation; + std::vector padBegin, padEnd, outPadding; + size_t convOutChannels; + std::tie(kernel, stride, padBegin, padEnd, dilation, convOutChannels, padType, outPadding) = basicParamsSet; + + InputShape inputShape; + ngraph::helpers::InputLayerType outShapeType; + std::vector> outShapeData; + std::tie(inputShape, outShapeType, outShapeData) = inputData; + + std::ostringstream result; + result << "IS="; + result << CommonTestUtils::partialShape2str({inputShape.first}) << "_"; + result << "TS="; + for (const auto& shape : inputShape.second) { + result << "("; + result << CommonTestUtils::vec2str(shape); + result << ")_"; + } + result << "PRC=" << prec << "_"; + result << "K=" << CommonTestUtils::vec2str(kernel) << "_"; + result << "S=" << CommonTestUtils::vec2str(stride) << "_"; + result << "PB=" << CommonTestUtils::vec2str(padBegin) << "_"; + result << "PE=" << CommonTestUtils::vec2str(padEnd) << "_"; + result << "D=" << CommonTestUtils::vec2str(dilation) << "_"; + result << "OP=" << CommonTestUtils::vec2str(outPadding) << "_"; + result << "O=" << convOutChannels << "_"; + result << "AP=" << padType << "_"; + result << "OUT_SH=" << outShapeType << "_"; + result << "OUT_D="; + for (const auto& data : outShapeData) { + result << "("; + result << CommonTestUtils::vec2str(data); + result << ")_"; + } + + result << CPUTestsBase::getTestCaseName(cpuParams); + result << CpuTestWithFusing::getTestCaseName(fusingParams); + + if (!additionalConfig.empty()) { + result << "_PluginConf"; + for (auto& item : additionalConfig) { + result << "_" << item.first << "=" << item.second; + } + } + + return result.str(); + } + + void generate_inputs(const std::vector& targetInputStaticShapes) override { + inputs.clear(); + const auto& funcInputs = function->inputs(); + for (int i = 0; i < funcInputs.size(); ++i) { + const auto& funcInput = funcInputs[i]; + ov::runtime::Tensor tensor; + + if (i == 1) { + tensor = ov::runtime::Tensor(funcInput.get_element_type(), targetInputStaticShapes[i], outShapeData[inferRequestNum].data()); + } else { + tensor = ov::test::utils::create_and_fill_tensor(funcInput.get_element_type(), targetInputStaticShapes[i], 2560, 0, 256); + } + + inputs.insert({funcInput.get_node_shared_ptr(), tensor}); + } + inferRequestNum++; + } + + void init_ref_function(std::shared_ptr &funcRef, const std::vector& targetInputStaticShapes) override { + if (function->get_parameters().size() == 1) { + ngraph::helpers::resize_function(funcRef, targetInputStaticShapes); + } else { + // WA: output_shape depends on 3rd deconvolution input data + // but the reference implementation doesn't implement shape inference + // so we need to build a new ngraph function and replace the 3rd input parameter with a constant + // to get valid output shapes + funcRef = createGraph({targetInputStaticShapes[0]}, ngraph::helpers::InputLayerType::CONSTANT); + } + } + + void validate() override { + if (function->get_parameters().size() == 2) { + auto pos = std::find_if(inputs.begin(), inputs.end(), + [](const std::pair, ov::runtime::Tensor> ¶ms) { + return params.first->get_friendly_name() == "param_1"; + }); + IE_ASSERT(pos != inputs.end()); + inputs.erase(pos); + } + SubgraphBaseTest::validate(); + } + + void configure_model() override { + ov::preprocess::PrePostProcessor p(function); + { + auto& params = function->get_parameters(); + for (size_t i = 0; i < params.size(); i++) { + if (i > 0) { + continue; + } + if (inType != ov::element::Type_t::undefined) { + p.input(i).tensor().set_element_type(inType); + } + } + } + { + auto results = function->get_results(); + for (size_t i = 0; i < results.size(); i++) { + if (outType != ov::element::Type_t::undefined) { + p.output(i).tensor().set_element_type(outType); + } + } + } + function = p.build(); + } + + std::shared_ptr createGraph(const std::vector& inShapes, ngraph::helpers::InputLayerType outShapeType) { + auto params = ngraph::builder::makeDynamicParams(prec, {inShapes.front()}); + std::shared_ptr outShapeNode; + if (!outShapeData.empty()) { + if (outShapeType == ngraph::helpers::InputLayerType::PARAMETER) { + IE_ASSERT(inputDynamicShapes.size() == 2); + auto outShapeParam = std::make_shared(ngraph::element::i32, inputDynamicShapes.back()); + params.push_back(outShapeParam); + outShapeNode = outShapeParam; + } else { + outShapeNode = ngraph::opset8::Constant::create(ngraph::element::i32, {outShapeData[inferRequestNum].size()}, outShapeData[inferRequestNum]); + } + } + + for (size_t i = 0; i < params.size(); i++) { + params[i]->set_friendly_name(std::string("param_") + std::to_string(i)); + } + + std::shared_ptr deconv; + if (!outShapeData.empty()) { + IE_ASSERT(outShapeNode != nullptr); + deconv = ngraph::builder::makeConvolutionBackpropData(params[0], outShapeNode, prec, kernel, stride, padBegin, + padEnd, dilation, padType, convOutChannels); + } else { + deconv = ngraph::builder::makeConvolutionBackpropData(params[0], prec, kernel, stride, padBegin, + padEnd, dilation, padType, convOutChannels, false, outPadding); + } + + return makeNgraphFunction(prec, params, deconv, "DeconvCPU"); + } + +protected: + InferenceEngine::SizeVector kernel, stride; + + void SetUp() override { + rel_threshold = 1e-4f; + + targetDevice = CommonTestUtils::DEVICE_CPU; + + DeconvSpecParams basicParamsSet; + DeconvInputData inputData; + fusingSpecificParams fusingParams; + CPUSpecificParams cpuParams; + std::map additionalConfig; + std::tie(basicParamsSet, inputData, prec, fusingParams, cpuParams, additionalConfig) = this->GetParam(); + + InputShape inputShape; + ngraph::helpers::InputLayerType outShapeType; + std::tie(inputShape, outShapeType, outShapeData) = inputData; + + configuration.insert(additionalConfig.begin(), additionalConfig.end()); + std::tie(inFmts, outFmts, priority, selectedType) = cpuParams; + std::tie(postOpMgrPtr, fusedOps) = fusingParams; + + std::tie(kernel, stride, padBegin, padEnd, dilation, convOutChannels, padType, outPadding) = basicParamsSet; + + if (additionalConfig[InferenceEngine::PluginConfigParams::KEY_ENFORCE_BF16] == InferenceEngine::PluginConfigParams::YES) { + inType = outType = prec = ElementType::bf16; + rel_threshold = 1e-2f; + } else { + inType = outType = prec; + } + + selectedType = makeSelectedTypeStr(selectedType, prec); + + std::vector paramsShapes; + paramsShapes.push_back(inputShape); + if (!outShapeData.empty() && outShapeType == ngraph::helpers::InputLayerType::PARAMETER) { + const auto outShapeDims = ov::Shape{outShapeData.front().size()}; + paramsShapes.push_back(InputShape{outShapeDims, std::vector(inputShape.second.size(), outShapeDims)}); + } + + init_input_shapes(paramsShapes); + + function = createGraph(inputDynamicShapes, outShapeType); + } + +private: + ElementType prec; + ngraph::op::PadType padType; + InferenceEngine::SizeVector dilation; + std::vector padBegin, padEnd, outPadding; + size_t convOutChannels; + ngraph::helpers::InputLayerType outShapeType; + std::vector> outShapeData; + size_t inferRequestNum = 0; +}; + +TEST_P(DeconvolutionLayerCPUTest, CompareWithRefs) { + SKIP_IF_CURRENT_TEST_IS_DISABLED() + + if (!fusedOps.empty()) { + bool isSupportedParams = stride[stride.size() - 1] <= kernel[kernel.size() - 1]; + if (stride.size() > 1) + isSupportedParams &= stride[stride.size() - 2] <= kernel[kernel.size() - 2]; + if (stride.size() > 2) + isSupportedParams &= stride[stride.size() - 3] <= kernel[kernel.size() - 3]; + if (!isSupportedParams) { + GTEST_SKIP() << "Fusing with strides more than kernel size was disabled, because oneDNN deconvolution doesn't support it" << std::endl; + } + } + + run(); + CheckPluginRelatedResults(executableNetwork, "Deconvolution"); +} + +namespace { + +/* COMMON PARAMS */ +const std::vector fusingParamsSet{ + emptyFusingSpec, + fusingScaleShift +}; + +const std::map cpuEmptyPluginConfig; +const std::mapcpuBF16PluginConfig = { { InferenceEngine::PluginConfigParams::KEY_ENFORCE_BF16, + InferenceEngine::PluginConfigParams::YES } }; +const std::vector> emptyOutputPadding = { {} }; + +/* ============= Deconvolution params (planar layout) ============= */ +const InferenceEngine::SizeVector numOutChannels_Planar = { 6 }; + +/* ============= Deconvolution params (blocked layout) ============= */ +const InferenceEngine::SizeVector numOutChannels_Blocked = { 64 }; + +/* ============= Deconvolution params (2D) ============= */ +const std::vector kernels2d = { {3, 3}, {1, 1} }; +const std::vector strides2d = { {1, 1}, {2, 2} }; +const std::vector> padBegins2d = { {0, 0} }; +const std::vector> padEnds2d = { {0, 0} }; +const std::vector dilations2d = { {1, 1} }; + +/* ============= Deconvolution params (3D) ============= */ +const std::vector kernels3d = { {3, 3, 3}, {1, 1, 1} }; +const std::vector strides3d = { {1, 1, 1}, {2, 2, 2} }; +const std::vector> padBegins3d = { {0, 0, 0} }; +const std::vector> padEnds3d = { {0, 0, 0} }; +const std::vector dilations3d = { {1, 1, 1} }; +/* ============= */ + +/* INSTANCES */ +/* ============= Deconvolution (Planar 2D) ============= */ +const auto convParams_ExplicitPadding_Planar_2D = ::testing::Combine( + ::testing::ValuesIn(kernels2d), + ::testing::ValuesIn(strides2d), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Planar), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +const std::vector Planar_2D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 12, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1}, {{ 2, 12, 7, 7}, { 2, 12, 5, 7}, { 1, 12, 9, 4}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {9, 9}} + } +}; + +const std::vector Planar_2D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 12, -1, -1}, {{ 2, 12, 7, 7}, { 2, 12, 5, 7}, { 1, 12, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1}, {{ 2, 12, 7, 7}, { 2, 12, 5, 7}, { 1, 12, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15}} + } +}; + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Planar_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Planar_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Planar_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Planar_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= Deconvolution (Planar 3D) ============= */ +const std::vector Planar_3D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 12, 7, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15, 15}, {9, 10, 10}, {9, 9, 9}} + } +}; + +const std::vector Planar_3D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15, 15}} + } +}; + +const auto convParams_ExplicitPadding_Planar_3D = ::testing::Combine( + ::testing::ValuesIn(kernels3d), + ::testing::ValuesIn(strides3d), + ::testing::ValuesIn(padBegins3d), + ::testing::ValuesIn(padEnds3d), + ::testing::ValuesIn(dilations3d), + ::testing::ValuesIn(numOutChannels_Planar), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Planar_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Planar_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Planar_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Planar_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= Deconvolution (Blocked 2D) ============= */ +const std::vector Blocked_2D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 67, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 67, -1, -1}, {{ 2, 67, 7, 7}, { 2, 67, 5, 7}, { 1, 67, 9, 4}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {9, 9}} + } +}; + +const std::vector Blocked_2D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 67, -1, -1}, {{ 2, 67, 7, 7}, { 2, 67, 5, 7}, { 1, 67, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 67, -1, -1}, {{ 2, 67, 7, 7}, { 2, 67, 5, 7}, { 1, 67, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15}} + } +}; + +const auto convParams_ExplicitPadding_Blocked_2D = ::testing::Combine( + ::testing::ValuesIn(kernels2d), + ::testing::ValuesIn(strides2d), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Blocked_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Blocked_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Blocked_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Blocked_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= Deconvolution (Blocked 3D) ============= */ +const std::vector Blocked_3D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 35, 7, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 35, -1, -1, -1}, {{ 1, 35, 5, 5, 5}, { 2, 35, 5, 7, 5}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{7, 7, 7}, {7, 9, 7}} + } +}; + +const std::vector Blocked_3D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 35, -1, -1, -1}, {{ 1, 35, 5, 5, 5}, { 2, 35, 5, 7, 5}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 35, -1, -1, -1}, {{ 1, 35, 5, 5, 5}, { 2, 35, 5, 7, 5}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{7, 7, 7}} + } +}; + +const auto convParams_ExplicitPadding_Blocked_3D = ::testing::Combine( + ::testing::ValuesIn(kernels3d), + ::testing::ValuesIn(strides3d), + ::testing::ValuesIn(padBegins3d), + ::testing::ValuesIn(padEnds3d), + ::testing::ValuesIn(dilations3d), + ::testing::Values(32), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Blocked_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Blocked_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Blocked_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Blocked_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= Kernel_1x1 (2D) ============= */ +const auto convParams_ExplicitPadding_1x1_2D = ::testing::Combine( + ::testing::Values(InferenceEngine::SizeVector({1, 1})), + ::testing::Values(InferenceEngine::SizeVector({1, 1})), + ::testing::Values(std::vector({0, 0})), + ::testing::Values(std::vector({0, 0})), + ::testing::Values(InferenceEngine::SizeVector({1, 1})), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_1x1_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_1x1_2D, + ::testing::ValuesIn(Blocked_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_1x1_BF16, DeconvolutionLayerCPUTest, + ::testing::Combine( + convParams_ExplicitPadding_1x1_2D, + ::testing::ValuesIn(Blocked_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1})), + ::testing::Values(cpuBF16PluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= Reorder + Deconvolution ============= */ +INSTANTIATE_TEST_SUITE_P(smoke_reorder_Deconv_2D, DeconvolutionLayerCPUTest, + ::testing::Combine( + ::testing::Combine(::testing::ValuesIn(kernels2d), + ::testing::Values(InferenceEngine::SizeVector{1, 1}), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding)), + ::testing::Values(DeconvInputData{InputShape{{-1, 67, -1, -1}, {{ 2, 67, 7, 7}, { 2, 67, 5, 7}, { 1, 67, 9, 4}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {9, 9}}}), + ::testing::Values(ElementType::f32), + ::testing::Values(emptyFusingSpec), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= Deconvolution auto padding tests ============= */ +const std::vector inputs_2D_AutoPadding = { + DeconvInputData{ + InputShape{{}, {{ 2, 67, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 67, -1, -1}, {{ 2, 67, 7, 7}, { 2, 67, 5, 7}, { 1, 67, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 67, -1, -1}, {{ 2, 67, 7, 7}, { 2, 67, 5, 7}, { 1, 67, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15}} + }, + DeconvInputData{ + InputShape{{-1, 67, -1, -1}, {{ 2, 67, 7, 7}, { 2, 67, 5, 7}, { 1, 67, 9, 4}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {9, 9}} + } +}; + +const auto deconvParams_AutoPadding_2D = ::testing::Combine( + ::testing::ValuesIn(kernels2d), + ::testing::ValuesIn(strides2d), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::Values(ngraph::op::PadType::SAME_UPPER, ngraph::op::PadType::SAME_LOWER), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_AutoPadding_FP32, DeconvolutionLayerCPUTest, + ::testing::Combine( + deconvParams_AutoPadding_2D, + ::testing::ValuesIn(inputs_2D_AutoPadding), + ::testing::Values(ElementType::f32), + ::testing::Values(emptyFusingSpec), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D, conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + DeconvolutionLayerCPUTest::getTestCaseName); + +} // namespace + +} // namespace CPULayerTestsDefinitions diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/ctc_Loss.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/ctc_Loss.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/ctc_Loss.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/ctc_Loss.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder_seq_len.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder_seq_len.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder_seq_len.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/ctc_greedy_decoder_seq_len.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/cum_sum.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/cum_sum.cpp similarity index 53% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/cum_sum.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/cum_sum.cpp index 90a1d12b5df..bd84c142971 100644 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/cum_sum.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/cum_sum.cpp @@ -9,57 +9,55 @@ using namespace ngraph; using namespace InferenceEngine; using namespace CPUTestUtils; +using namespace ov; +using namespace test; namespace CPULayerTestsDefinitions { -using cumSumShape = std::pair, std::vector>>; using cumSumParams = std::tuple< ngraph::element::Type, // data precision - cumSumShape, // input shape + InputShape, // input shape std::int64_t, // axis bool, // exclusive bool>; // reverse -class CumSumLayerCPUTest : public testing::WithParamInterface, public ov::test::SubgraphBaseTest, public CPUTestsBase { +class CumSumLayerCPUTest : public testing::WithParamInterface, + public SubgraphBaseTest, public CPUTestsBase { public: static std::string getTestCaseName(testing::TestParamInfo obj) { ngraph::element::Type inputPrecision; - std::pair, std::vector>> shapes; + InputShape shapes; std::int64_t axis; bool exclusive; bool reverse; std::tie(inputPrecision, shapes, axis, exclusive, reverse) = obj.param; - std::ostringstream result; - result << inputPrecision << "_" << "IS=" << CommonTestUtils::partialShape2str(shapes.first) << "_" << "TS="; - for (const auto& shape : shapes.second) { - result << "("; - for (const auto& item : shape) { - result << CommonTestUtils::vec2str(item) << "_"; - } - result << ")_"; + std::ostringstream results; + results << "IS=" << CommonTestUtils::partialShape2str({shapes.first}) << "_"; + results << "TS="; + for (const auto& item : shapes.second) { + results << CommonTestUtils::vec2str(item) << "_"; } - - result << "Axis=" << axis << "_" << (exclusive ? "exclusive" : "") << "_" << (reverse ? "reverse" : ""); - return result.str(); + results << "Prc=" << inputPrecision << "_"; + results << "Axis=" << axis << "_" << (exclusive ? "exclusive" : "") << "_" << (reverse ? "reverse" : ""); + return results.str(); } protected: void SetUp() override { targetDevice = CommonTestUtils::DEVICE_CPU; - ngraph::element::Type inputPrecision; - std::pair, std::vector>> shapes; + InputShape shapes; std::int64_t axis; bool exclusive; bool reverse; - std::tie(inputPrecision, shapes, axis, exclusive, reverse) = this->GetParam(); + std::tie(inType, shapes, axis, exclusive, reverse) = this->GetParam(); + if (inType == ElementType::bf16) + rel_threshold = 0.05f; - for (size_t i = 0; i < shapes.second.size(); i++) { - targetStaticShapes.push_back(shapes.second[i]); - } - inputDynamicShapes = shapes.first; + selectedType = makeSelectedTypeStr("ref_any", inType); + init_input_shapes({shapes}); - auto params = ngraph::builder::makeDynamicParams(inputPrecision, { inputDynamicShapes.front() }); + auto params = ngraph::builder::makeDynamicParams(inType, inputDynamicShapes); auto axisNode = ngraph::opset1::Constant::create(ngraph::element::i32, ngraph::Shape{}, std::vector{axis})->output(0); auto cumSum = ngraph::builder::makeCumSum(params[0], axisNode, exclusive, reverse); @@ -72,15 +70,12 @@ TEST_P(CumSumLayerCPUTest, CompareWithRefs) { SKIP_IF_CURRENT_TEST_IS_DISABLED() run(); - // TODO: Should be uncommented after updating the CheckPluginRelatedResults() method - //CheckPluginRelatedResults(executableNetwork, "CumSum"); + CheckPluginRelatedResults(executableNetwork, "CumSum"); } const ngraph::element::TypeVector inputPrecision = { ngraph::element::i8, - ngraph::element::u8, - ngraph::element::i16, - ngraph::element::i32, + ngraph::element::bf16, ngraph::element::f32 }; @@ -90,97 +85,33 @@ const std::vector negativeAxes = { -1, -2, -3, -4, -5, -6 }; const std::vector exclusive = { true, false }; const std::vector reverse = { true, false }; -const std::vector inShapes = { - { - // dynamic - { - {-1} - }, - // target - { - {{16}, {18}, {12}} - } - }, - { - // dynamic - { - {-1, -1} - }, - // target - { - {{9, 15}, {18, 12}, {12, 12}} - } - }, - { - // dynamic - { - {-1, -1, -1} - }, - // target - { - {{16, 10, 12}, {18, 12, 10}, {12, 18, 10}} - } - }, - { - // dynamic - { - {-1, -1, -1, -1} - }, - // target - { - {{18, 20, 14, 12}, {19, 20, 14, 12}, {20, 22, 23, 25}} - } - }, - { - // dynamic - { - {-1, -1, -1, -1, -1} - }, - // target - { - {{2, 4, 6, 2, 4}, {3, 5, 6, 3, 5}, {1, 4, 2, 6, 8}} - } - }, - { - // dynamic - { - {-1, -1, -1, -1, -1, -1} - }, - // target - { - {{2, 4, 6, 2, 4, 2}, {3, 5, 6, 3, 5, 3}, {1, 4, 2, 6, 8, 1}} - } - }, - { - // dynamic - { - {-1, -1, -1, -1, -1, -1, -1} - }, - // target - { - {{2, 4, 6, 2, 4, 2, 4}, {3, 5, 6, 3, 5, 3, 5}, {1, 4, 2, 6, 8, 1, 4}} - } - }, - { - // dynamic - { - {{2, 5}, {3, 7}, {4, 8}, {5, 7}, {2, 5}, {3, 7}, {1, 2}} - }, - // target - { - {{2, 4, 6, 5, 4, 3, 1}, {3, 5, 6, 6, 5, 3, 1}, {5, 7, 4, 6, 3, 7, 2}} - } - }, - { - // dynamic - { - {{2, 5}, -1, {4, 8}, -1, -1, {3, 7}, -1} - }, - // target - { - {{2, 4, 6, 5, 4, 3, 1}, {3, 5, 6, 6, 5, 3, 1}, {5, 7, 4, 6, 3, 7, 2}} - } - }, +const std::vector inShapes = { + {{-1}, + {{16}, {18}, {12}}}, + + {{-1, -1}, + {{9, 15}, {18, 12}, {12, 12}}}, + + {{-1, -1, -1}, + {{16, 10, 12}, {18, 12, 10}, {12, 18, 10}}}, + + {{-1, -1, -1, -1}, + {{18, 20, 14, 12}, {19, 20, 14, 12}, {20, 22, 23, 25}}}, + + {{-1, -1, -1, -1, -1}, + {{2, 4, 6, 2, 4}, {3, 5, 6, 3, 5}, {1, 4, 2, 6, 8}}}, + + {{-1, -1, -1, -1, -1, -1}, + {{2, 4, 6, 2, 4, 2}, {3, 5, 6, 3, 5, 3}, {1, 4, 2, 6, 8, 1}}}, + + {{{-1, -1, -1, -1, -1, -1, -1}}, + {{2, 4, 6, 2, 4, 2, 4}, {3, 5, 6, 3, 5, 3, 5}, {1, 4, 2, 6, 8, 1, 4}}}, + + {{{2, 5}, {3, 7}, {4, 8}, {5, 7}, {2, 5}, {3, 7}, {1, 2}}, + {{2, 4, 6, 5, 4, 3, 1}, {3, 5, 6, 6, 5, 3, 1}, {5, 7, 4, 6, 3, 7, 2}}}, + + {{{2, 5}, -1, {4, 8}, -1, -1, {3, 7}, -1}, + {{2, 4, 6, 5, 4, 3, 1}, {3, 5, 6, 6, 5, 3, 1}, {5, 7, 4, 6, 3, 7, 2}}} }; const auto testCasesAxis_0 = ::testing::Combine( @@ -193,7 +124,7 @@ const auto testCasesAxis_0 = ::testing::Combine( const auto testCasesAxis_1 = ::testing::Combine( ::testing::ValuesIn(inputPrecision), - ::testing::ValuesIn(std::vector(inShapes.begin() + 1, inShapes.end())), + ::testing::ValuesIn(std::vector(inShapes.begin() + 1, inShapes.end())), ::testing::Values(axes[1]), ::testing::ValuesIn(exclusive), ::testing::ValuesIn(reverse) @@ -201,7 +132,7 @@ const auto testCasesAxis_1 = ::testing::Combine( const auto testCasesAxis_2 = ::testing::Combine( ::testing::ValuesIn(inputPrecision), - ::testing::ValuesIn(std::vector(inShapes.begin() + 2, inShapes.end())), + ::testing::ValuesIn(std::vector(inShapes.begin() + 2, inShapes.end())), ::testing::Values(axes[2]), ::testing::ValuesIn(exclusive), ::testing::ValuesIn(reverse) @@ -209,7 +140,7 @@ const auto testCasesAxis_2 = ::testing::Combine( const auto testCasesAxis_3 = ::testing::Combine( ::testing::ValuesIn(inputPrecision), - ::testing::ValuesIn(std::vector(inShapes.begin() + 3, inShapes.end())), + ::testing::ValuesIn(std::vector(inShapes.begin() + 3, inShapes.end())), ::testing::Values(axes[3]), ::testing::ValuesIn(exclusive), ::testing::ValuesIn(reverse) @@ -217,7 +148,7 @@ const auto testCasesAxis_3 = ::testing::Combine( const auto testCasesAxis_4 = ::testing::Combine( ::testing::ValuesIn(inputPrecision), - ::testing::ValuesIn(std::vector(inShapes.begin() + 4, inShapes.end())), + ::testing::ValuesIn(std::vector(inShapes.begin() + 4, inShapes.end())), ::testing::Values(axes[4]), ::testing::ValuesIn(exclusive), ::testing::ValuesIn(reverse) @@ -225,7 +156,7 @@ const auto testCasesAxis_4 = ::testing::Combine( const auto testCasesAxis_5 = ::testing::Combine( ::testing::ValuesIn(inputPrecision), - ::testing::ValuesIn(std::vector(inShapes.begin() + 5, inShapes.end())), + ::testing::ValuesIn(std::vector(inShapes.begin() + 5, inShapes.end())), ::testing::Values(axes[5]), ::testing::ValuesIn(exclusive), ::testing::ValuesIn(reverse) @@ -233,7 +164,7 @@ const auto testCasesAxis_5 = ::testing::Combine( const auto testCasesAxis_6 = ::testing::Combine( ::testing::ValuesIn(inputPrecision), - ::testing::ValuesIn(std::vector(inShapes.begin() + 6, inShapes.end())), + ::testing::ValuesIn(std::vector(inShapes.begin() + 6, inShapes.end())), ::testing::Values(axes[6]), ::testing::ValuesIn(exclusive), ::testing::ValuesIn(reverse) @@ -241,7 +172,7 @@ const auto testCasesAxis_6 = ::testing::Combine( const auto testCasesAxis_negative = ::testing::Combine( ::testing::ValuesIn(inputPrecision), - ::testing::ValuesIn(std::vector(inShapes.begin() + 6, inShapes.end())), + ::testing::ValuesIn(std::vector(inShapes.begin() + 6, inShapes.end())), ::testing::ValuesIn(negativeAxes), ::testing::ValuesIn(exclusive), ::testing::ValuesIn(reverse) diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/deformable_convolution.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/deformable_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/deformable_convolution.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/deformable_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/depth_to_space.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/depth_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/depth_to_space.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/depth_to_space.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/detection_output.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/detection_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/detection_output.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/detection_output.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/eltwise.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/eltwise.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_offsets_sum.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_offsets_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_offsets_sum.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_offsets_sum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_packed_sum.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_packed_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_packed_sum.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/embedding_bag_packed_sum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/embedding_segments_sum.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/embedding_segments_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/embedding_segments_sum.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/embedding_segments_sum.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/extract_image_patches.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/extract_image_patches.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/extract_image_patches.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/extract_image_patches.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/fake_quantize.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/fake_quantize.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/fake_quantize.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/fake_quantize.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/gather.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/gather.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/gather.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/gather.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/gather_elements.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/gather_elements.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/gather_nd.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/gather_nd.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/gather_nd.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/gather_nd.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/group_convolution.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/group_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/group_convolution.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/group_convolution.cpp diff --git a/src/tests/functional/plugin/cpu/single_layer_tests/group_convolution_backprop_data.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/group_convolution_backprop_data.cpp new file mode 100755 index 00000000000..5ddfa950376 --- /dev/null +++ b/src/tests/functional/plugin/cpu/single_layer_tests/group_convolution_backprop_data.cpp @@ -0,0 +1,775 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "test_utils/cpu_test_utils.hpp" +#include "test_utils/convolution_params.hpp" +#include "test_utils/fusing_test_utils.hpp" +#include "shared_test_classes/base/ov_subgraph.hpp" +#include "functional_test_utils/ov_tensor_utils.hpp" +#include "ngraph_functions/builders.hpp" +#include +#include "openvino/core/preprocess/pre_post_process.hpp" + +using namespace CPUTestUtils; +using namespace ov::test; + +namespace CPULayerTestsDefinitions { + +using GroupDeconvSpecParams = LayerTestsDefinitions::groupConvBackpropSpecificParams; + +using DeconvInputData = std::tuple>>; // values for 'output_shape' + +using GroupDeconvLayerCPUTestParamsSet = std::tuple>; + +class GroupDeconvolutionLayerCPUTest : public testing::WithParamInterface, + virtual public SubgraphBaseTest, public CpuTestWithFusing { +public: + static std::string getTestCaseName(testing::TestParamInfo obj) { + GroupDeconvSpecParams basicParamsSet; + DeconvInputData inputData; + ElementType prec; + CPUSpecificParams cpuParams; + fusingSpecificParams fusingParams; + std::map additionalConfig; + std::tie(basicParamsSet, inputData, prec, fusingParams, cpuParams, additionalConfig) = obj.param; + + ngraph::op::PadType padType; + InferenceEngine::SizeVector kernel, stride, dilation; + std::vector padBegin, padEnd, outPadding; + size_t convOutChannels, groupNum; + std::tie(kernel, stride, padBegin, padEnd, dilation, convOutChannels, groupNum, padType, outPadding) = basicParamsSet; + + InputShape inputShape; + ngraph::helpers::InputLayerType outShapeType; + std::vector> outShapeData; + std::tie(inputShape, outShapeType, outShapeData) = inputData; + + std::ostringstream result; + result << "IS="; + result << CommonTestUtils::partialShape2str({inputShape.first}) << "_"; + result << "TS="; + for (const auto& shape : inputShape.second) { + result << "("; + result << CommonTestUtils::vec2str(shape); + result << ")_"; + } + result << "PRC=" << prec << "_"; + result << "K=" << CommonTestUtils::vec2str(kernel) << "_"; + result << "S=" << CommonTestUtils::vec2str(stride) << "_"; + result << "PB=" << CommonTestUtils::vec2str(padBegin) << "_"; + result << "PE=" << CommonTestUtils::vec2str(padEnd) << "_"; + result << "D=" << CommonTestUtils::vec2str(dilation) << "_"; + result << "OP=" << CommonTestUtils::vec2str(outPadding) << "_"; + result << "O=" << convOutChannels << "_"; + result << "G=" << groupNum << "_"; + result << "AP=" << padType << "_"; + result << "OUT_SH=" << outShapeType << "_"; + result << "OUT_D="; + for (const auto& data : outShapeData) { + result << "("; + result << CommonTestUtils::vec2str(data); + result << ")_"; + } + + result << CPUTestsBase::getTestCaseName(cpuParams); + result << CpuTestWithFusing::getTestCaseName(fusingParams); + + if (!additionalConfig.empty()) { + result << "_PluginConf"; + for (auto& item : additionalConfig) { + result << "_" << item.first << "=" << item.second; + } + } + + return result.str(); + } + + void generate_inputs(const std::vector& targetInputStaticShapes) override { + inputs.clear(); + const auto& funcInputs = function->inputs(); + for (int i = 0; i < funcInputs.size(); ++i) { + const auto& funcInput = funcInputs[i]; + ov::runtime::Tensor tensor; + + if (i == 1) { + tensor = ov::runtime::Tensor(funcInput.get_element_type(), targetInputStaticShapes[i], outShapeData[inferRequestNum].data()); + } else { + tensor = ov::test::utils::create_and_fill_tensor(funcInput.get_element_type(), targetInputStaticShapes[i], 2560, 0, 256); + } + + inputs.insert({funcInput.get_node_shared_ptr(), tensor}); + } + inferRequestNum++; + } + + void init_ref_function(std::shared_ptr &funcRef, const std::vector& targetInputStaticShapes) override { + if (function->get_parameters().size() == 1) { + ngraph::helpers::resize_function(funcRef, targetInputStaticShapes); + } else { + // WA: output_shape depends on 3rd deconvolution input data + // but the reference implementation doesn't implement shape inference + // so we need to build a new ngraph function and replace the 3rd input parameter with a constant + // to get valid output shapes + funcRef = createGraph({targetInputStaticShapes[0]}, ngraph::helpers::InputLayerType::CONSTANT); + } + } + + void validate() override { + if (function->get_parameters().size() == 2) { + auto pos = std::find_if(inputs.begin(), inputs.end(), + [](const std::pair, ov::runtime::Tensor> ¶ms) { + return params.first->get_friendly_name() == "param_1"; + }); + IE_ASSERT(pos != inputs.end()); + inputs.erase(pos); + } + SubgraphBaseTest::validate(); + } + + void configure_model() override { + ov::preprocess::PrePostProcessor p(function); + { + auto& params = function->get_parameters(); + for (size_t i = 0; i < params.size(); i++) { + if (i > 0) { + continue; + } + if (inType != ov::element::Type_t::undefined) { + p.input(i).tensor().set_element_type(inType); + } + } + } + { + auto results = function->get_results(); + for (size_t i = 0; i < results.size(); i++) { + if (outType != ov::element::Type_t::undefined) { + p.output(i).tensor().set_element_type(outType); + } + } + } + function = p.build(); + } + + std::shared_ptr createGraph(const std::vector& inShapes, ngraph::helpers::InputLayerType outShapeType) { + auto params = ngraph::builder::makeDynamicParams(prec, {inShapes.front()}); + std::shared_ptr outShapeNode; + if (!outShapeData.empty()) { + if (outShapeType == ngraph::helpers::InputLayerType::PARAMETER) { + IE_ASSERT(inputDynamicShapes.size() == 2); + auto outShapeParam = std::make_shared(ngraph::element::i32, inputDynamicShapes.back()); + params.push_back(outShapeParam); + outShapeNode = outShapeParam; + } else { + outShapeNode = ngraph::opset8::Constant::create(ngraph::element::i32, {outShapeData[inferRequestNum].size()}, outShapeData[inferRequestNum]); + } + } + + for (size_t i = 0; i < params.size(); i++) { + params[i]->set_friendly_name(std::string("param_") + std::to_string(i)); + } + + std::shared_ptr deconv; + if (!outShapeData.empty()) { + IE_ASSERT(outShapeNode != nullptr); + deconv = ngraph::builder::makeGroupConvolutionBackpropData(params[0], outShapeNode, prec, kernel, stride, padBegin, + padEnd, dilation, padType, convOutChannels, groupNum); + } else { + deconv = ngraph::builder::makeGroupConvolutionBackpropData(params[0], prec, kernel, stride, padBegin, + padEnd, dilation, padType, convOutChannels, groupNum, false, outPadding); + } + + return makeNgraphFunction(prec, params, deconv, "GroupDeconvCPU"); + } + +protected: + InferenceEngine::SizeVector kernel, stride; + + void SetUp() override { + rel_threshold = 1e-4f; + + targetDevice = CommonTestUtils::DEVICE_CPU; + + GroupDeconvSpecParams basicParamsSet; + DeconvInputData inputData; + CPUSpecificParams cpuParams; + fusingSpecificParams fusingParams; + std::map additionalConfig; + std::tie(basicParamsSet, inputData, prec, fusingParams, cpuParams, additionalConfig) = this->GetParam(); + + configuration.insert(additionalConfig.begin(), additionalConfig.end()); + std::tie(postOpMgrPtr, fusedOps) = fusingParams; + + std::tie(kernel, stride, padBegin, padEnd, dilation, convOutChannels, groupNum, padType, outPadding) = basicParamsSet; + + InputShape inputShape; + ngraph::helpers::InputLayerType outShapeType; + std::tie(inputShape, outShapeType, outShapeData) = inputData; + + std::tie(inFmts, outFmts, priority, selectedType) = cpuParams; + + if (additionalConfig[InferenceEngine::PluginConfigParams::KEY_ENFORCE_BF16] == InferenceEngine::PluginConfigParams::YES) { + inType = outType = prec = ElementType::bf16; + rel_threshold = 1e-2f; + } else { + inType = outType = prec; + } + + selectedType = makeSelectedTypeStr(selectedType, prec); + + std::vector paramsShapes; + paramsShapes.push_back(inputShape); + if (!outShapeData.empty() && outShapeType == ngraph::helpers::InputLayerType::PARAMETER) { + const auto outShapeDims = ov::Shape{outShapeData.front().size()}; + paramsShapes.push_back(InputShape{outShapeDims, std::vector(inputShape.second.size(), outShapeDims)}); + } + + init_input_shapes(paramsShapes); + + function = createGraph(inputDynamicShapes, outShapeType); + } + +private: + ElementType prec; + ngraph::op::PadType padType; + InferenceEngine::SizeVector dilation; + std::vector padBegin, padEnd, outPadding; + size_t convOutChannels, groupNum; + ngraph::helpers::InputLayerType outShapeType; + std::vector> outShapeData; + size_t inferRequestNum = 0; +}; + +TEST_P(GroupDeconvolutionLayerCPUTest, CompareWithRefs) { + SKIP_IF_CURRENT_TEST_IS_DISABLED() + + if (!fusedOps.empty()) { + bool isSupportedParams = stride[stride.size() - 1] <= kernel[kernel.size() - 1]; + if (stride.size() > 1) + isSupportedParams &= stride[stride.size() - 2] <= kernel[kernel.size() - 2]; + if (stride.size() > 2) + isSupportedParams &= stride[stride.size() - 3] <= kernel[kernel.size() - 3]; + if (!isSupportedParams) { + GTEST_SKIP() << "Fusing with strides more than kernel size was disabled, because oneDNN deconvolution doesn't support it" << std::endl; + } + } + + run(); + CheckPluginRelatedResults(executableNetwork, "Deconvolution"); +} + +namespace { + +/* COMMON PARAMS */ +std::vector fusingParamsSet { + emptyFusingSpec, + fusingScaleShift, +}; +const std::map cpuEmptyPluginConfig; +const std::map cpuBF16PluginConfig = { { InferenceEngine::PluginConfigParams::KEY_ENFORCE_BF16, + InferenceEngine::PluginConfigParams::YES } }; + +const std::vector> emptyOutputShape = {{}}; +const std::vector> emptyOutputPadding = {{}}; + +/* ============= GroupConvolution params (planar layout) ============= */ +const InferenceEngine::SizeVector numOutChannels_Planar = {6}; +const InferenceEngine::SizeVector numGroups_Planar = {2, 3}; + +/* ============= GroupConvolution params (blocked layout) ============= */ +const InferenceEngine::SizeVector numOutChannels_Blocked = {64}; +const InferenceEngine::SizeVector numGroups_Blocked = {2, 4}; + +/* ============= GroupConvolution params (DW) ============= */ +const InferenceEngine::SizeVector numOutChannels_DW = {32}; +const InferenceEngine::SizeVector numGroups_DW = {32}; + +/* ============= GroupConvolution params (2D) ============= */ +const std::vector kernels2d = {{3, 3}, {1, 1}}; +const std::vector strides2d = {{1, 1}, {2, 2}}; +const std::vector> padBegins2d = {{0, 0}}; +const std::vector> padEnds2d = {{0, 0}}; +const std::vector dilations2d = {{1, 1}}; + +/* ============= GroupConvolution params (3D) ============= */ +const std::vector kernels3d = {{3, 3, 3}, {1, 1, 1}}; +const std::vector strides3d = {{1, 1, 1}, {2, 2, 2}}; +const std::vector> padBegins3d = {{0, 0, 0}}; +const std::vector> padEnds3d = {{0, 0, 0}}; +const std::vector dilations3d = {{1, 1, 1}}; +/* ============= */ + + +/* INSTANCES */ +/* ============= GroupConvolution (Planar 2D) ============= */ +const std::vector Planar_2D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 12, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1}, {{ 2, 12, 7, 7}, { 2, 12, 5, 7}, { 1, 12, 9, 4}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {9, 9}} + } +}; + +const std::vector Planar_2D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 12, -1, -1}, {{ 2, 12, 7, 7}, { 2, 12, 5, 7}, { 1, 12, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1}, {{ 2, 12, 7, 7}, { 2, 12, 5, 7}, { 1, 12, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15}} + } +}; + +const auto groupConvParams_ExplicitPadding_Planar_2D = ::testing::Combine( + ::testing::ValuesIn(kernels2d), + ::testing::ValuesIn(strides2d), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Planar), + ::testing::ValuesIn(numGroups_Planar), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Planar_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Planar_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_2D_Planar_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_2D_Planar_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_2D, + ::testing::ValuesIn(Planar_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= GroupConvolution (Planar 3D) ============= */ +const std::vector Planar_3D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 12, 7, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15, 15}, {9, 10, 10}, {9, 9, 9}} + } +}; + +const std::vector Planar_3D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15, 15}} + } +}; + +const auto groupConvParams_ExplicitPadding_Planar_3D = ::testing::Combine( + ::testing::ValuesIn(kernels3d), + ::testing::ValuesIn(strides3d), + ::testing::ValuesIn(padBegins3d), + ::testing::ValuesIn(padEnds3d), + ::testing::ValuesIn(dilations3d), + ::testing::ValuesIn(numOutChannels_Planar), + ::testing::ValuesIn(numGroups_Planar), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Planar_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Planar_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_3D_Planar_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_3D_Planar_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Planar_3D, + ::testing::ValuesIn(Planar_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= GroupConvolution (Blocked 2D) ============= */ +const std::vector Blocked_2D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 64, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 64, -1, -1}, {{ 2, 64, 7, 7}, { 2, 64, 5, 7}, { 1, 64, 9, 5}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {19, 9}} + } +}; + +const std::vector Blocked_2D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 64, -1, -1}, {{ 2, 64, 7, 7}, { 2, 64, 5, 7}, { 1, 64, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 64, -1, -1}, {{ 2, 64, 7, 7}, { 2, 64, 5, 7}, { 1, 64, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15}} + } +}; + +const auto groupConvParams_ExplicitPadding_Blocked_2D = ::testing::Combine( + ::testing::ValuesIn(kernels2d), + ::testing::ValuesIn(strides2d), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::ValuesIn(numGroups_Blocked), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Blocked_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_Blocked_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_2D_Blocked_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_2D_Blocked_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_2D, + ::testing::ValuesIn(Blocked_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= GroupConvolution (Blocked 3D) ============= */ +const std::vector Blocked_3D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 64, 7, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 64, -1, -1, -1}, {{ 1, 64, 5, 5, 5}, { 2, 64, 5, 7, 5}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{7, 7, 7}, {7, 9, 7}} + } +}; + +const std::vector Blocked_3D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 64, -1, -1, -1}, {{ 1, 64, 5, 5, 5}, { 2, 64, 5, 7, 5}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 64, -1, -1, -1}, {{ 1, 64, 5, 5, 5}, { 2, 64, 5, 7, 5}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{7, 7, 7}} + } +}; + +const auto groupConvParams_ExplicitPadding_Blocked_3D = ::testing::Combine( + ::testing::ValuesIn(kernels3d), + ::testing::ValuesIn(strides3d), + ::testing::ValuesIn(padBegins3d), + ::testing::ValuesIn(padEnds3d), + ::testing::ValuesIn(dilations3d), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::ValuesIn(numGroups_Blocked), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Blocked_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_3D_Blocked_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_3D_Blocked_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_3D_Blocked_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_Blocked_3D, + ::testing::ValuesIn(Blocked_3D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= GroupConvolution (DW 2D) ============= */ +const std::vector dw_2D_inputs_smoke = { + DeconvInputData{ + InputShape{{}, {{ 2, 32, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 32, -1, -1}, {{ 1, 32, 5, 5}, { 2, 32, 5, 7}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{7, 7}, {7, 9}} + } +}; + +const std::vector dw_2D_inputs_nightly = { + DeconvInputData{ + InputShape{{-1, 32, -1, -1}, {{ 1, 32, 5, 5}, { 2, 32, 5, 7}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 32, -1, -1}, {{ 1, 32, 5, 5}, { 2, 32, 5, 7}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{7, 7}} + } +}; + +const auto groupConvParams_ExplicitPadding_DW_2D = ::testing::Combine( + ::testing::ValuesIn(kernels2d), + ::testing::ValuesIn(strides2d), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_DW), + ::testing::ValuesIn(numGroups_DW), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_DW_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_DW_2D, + ::testing::ValuesIn(dw_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_dw_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_DW_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_DW_2D, + ::testing::ValuesIn(dw_2D_inputs_smoke), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_dw_2D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_2D_DW_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_DW_2D, + ::testing::ValuesIn(dw_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_dw_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(nightly_GroupDeconv_2D_DW_BF16, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupConvParams_ExplicitPadding_DW_2D, + ::testing::ValuesIn(dw_2D_inputs_nightly), + ::testing::Values(ElementType::f32), + ::testing::ValuesIn(fusingParamsSet), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_dw_2D})), + ::testing::Values(cpuBF16PluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= Reorder + GroupDeconvolution ============= */ +INSTANTIATE_TEST_SUITE_P(smoke_reorder_GroupDeconv_2D, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + ::testing::Combine(::testing::ValuesIn(kernels2d), + ::testing::Values(InferenceEngine::SizeVector{1, 1}), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::ValuesIn(numGroups_Blocked), + ::testing::Values(ngraph::op::PadType::EXPLICIT), + ::testing::ValuesIn(emptyOutputPadding)), + ::testing::Values(DeconvInputData{InputShape{{-1, 64, -1, -1}, {{ 2, 64, 7, 7}, { 2, 64, 5, 7}, { 1, 64, 9, 4}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {9, 9}}}), + ::testing::Values(ElementType::f32), + ::testing::Values(emptyFusingSpec), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +/* ============= GroupDeconvolution auto padding tests ============= */ +const std::vector inputs_2D_AutoPadding = { + DeconvInputData{ + InputShape{{}, {{ 2, 64, 7, 7 }}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 64, -1, -1}, {{ 2, 64, 7, 7}, { 2, 64, 5, 7}, { 1, 64, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {} + }, + DeconvInputData{ + InputShape{{-1, 64, -1, -1}, {{ 2, 64, 7, 7}, { 2, 64, 5, 7}, { 1, 64, 9, 4}}}, + ngraph::helpers::InputLayerType::CONSTANT, + {{15, 15}} + }, + DeconvInputData{ + InputShape{{-1, 64, -1, -1}, {{ 2, 64, 7, 7}, { 2, 64, 5, 7}, { 1, 64, 9, 5}}}, + ngraph::helpers::InputLayerType::PARAMETER, + {{15, 15}, {9, 10}, {19, 9}} + } +}; + +const auto groupDeconvParams_AutoPadding_2D = ::testing::Combine( + ::testing::ValuesIn(kernels2d), + ::testing::ValuesIn(strides2d), + ::testing::ValuesIn(padBegins2d), + ::testing::ValuesIn(padEnds2d), + ::testing::ValuesIn(dilations2d), + ::testing::ValuesIn(numOutChannels_Blocked), + ::testing::ValuesIn(numGroups_Blocked), + ::testing::Values(ngraph::op::PadType::SAME_UPPER, ngraph::op::PadType::SAME_LOWER), + ::testing::ValuesIn(emptyOutputPadding) +); + +INSTANTIATE_TEST_SUITE_P(smoke_GroupDeconv_2D_AutoPadding_FP32, GroupDeconvolutionLayerCPUTest, + ::testing::Combine( + groupDeconvParams_AutoPadding_2D, + ::testing::ValuesIn(inputs_2D_AutoPadding), + ::testing::Values(ElementType::f32), + ::testing::Values(emptyFusingSpec), + ::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D, conv_avx512_2D})), + ::testing::Values(cpuEmptyPluginConfig)), + GroupDeconvolutionLayerCPUTest::getTestCaseName); + +} // namespace + +} // namespace CPULayerTestsDefinitions \ No newline at end of file diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/gru_cell.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/gru_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/gru_cell.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/gru_cell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/gru_sequence.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/gru_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/gru_sequence.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/gru_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/interpolate.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/interpolate.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/interpolate.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/interpolate.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/log_softmax.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/log_softmax.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/log_softmax.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/log_softmax.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/logical.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/logical.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/logical.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/logical.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/lrn.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/lrn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/lrn.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/lrn.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/lstm_cell.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/lstm_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/lstm_cell.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/lstm_cell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/lstm_sequence.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/lstm_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/lstm_sequence.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/lstm_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/mat_mul.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/mat_mul.cpp similarity index 72% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/mat_mul.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/mat_mul.cpp index 367886f31e2..063e13e5d7d 100644 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/mat_mul.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/mat_mul.cpp @@ -2,9 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "shared_test_classes/single_layer/mat_mul.hpp" #include "shared_test_classes/base/ov_subgraph.hpp" +#include "ie_precision.hpp" #include "test_utils/fusing_test_utils.hpp" #include "ngraph_functions/builders.hpp" +#include using namespace ngraph; using namespace InferenceEngine; @@ -139,11 +142,10 @@ protected: const auto& inShapeA = inputDynamicShapes[0]; const auto& inShapeB = inputDynamicShapes[1]; - /* @todo - * Currently nodes are not fused thought Reshape - * Check can be deleted after this limitation is gone - */ - if (nodeType == MatMulNodeType::MatMul && inShapeA.size() < 4 && inShapeB.size() < 4) + // see comment in MKLDNNMatMulNode::canFuse + if (!(nodeType == MatMulNodeType::MatMul && + std::get<0>(fusingParams) && std::get<0>(fusingParams)->getFusedOpsNames().find("(PerChannel)") != std::string::npos && + std::max(inShapeA.size(), inShapeB.size()) > 2)) std::tie(postOpMgrPtr, fusedOps) = fusingParams; configuration.insert(additionalConfig.begin(), additionalConfig.end()); @@ -179,6 +181,8 @@ TEST_P(MatMulLayerCPUTest, CompareWithRefs) { namespace { /* ============= Common params ============= */ +std::map emptyAdditionalConfig; + std::vector> additionalConfig { std::map{/* empty config */}, {{PluginConfigParams::KEY_ENFORCE_BF16, PluginConfigParams::YES}} @@ -196,15 +200,16 @@ std::vector filterSpecificParams() { return specificParams; } +const auto fusingBias = fusingSpecificParams{std::make_shared(std::vector{ + {[](std::shared_ptr inpNode, const element::Type& ngPrc, ParameterVector& params) { + size_t last_dim = inpNode->get_output_partial_shape(0).rbegin()->get_length(); + auto bias = builder::makeConstant(ngPrc, Shape{last_dim}, std::vector{}, true); + return std::make_shared(inpNode, bias); + }, "fusingBias"}}), {"Add"}}; + /* ============= FullyConnected ============= */ namespace fullyConnected { -const auto fusingBiasFC = fusingSpecificParams{std::make_shared(std::vector{ - {[](std::shared_ptr inpNode, const element::Type& ngPrc, ParameterVector& params) { - auto bias = builder::makeConstant(ngPrc, Shape({inpNode->get_output_shape(0).back()}), std::vector{}, true); - return std::make_shared(inpNode, bias); - }, "fusingBiasFC"}}), {"Add"}}; - const std::vector IS2D = { {static_shapes_to_test_representation({{59, 1}, {1, 120}}), {false, false}}, {static_shapes_to_test_representation({{59, 1}, {1, 120}}), {true, false}}, @@ -229,26 +234,46 @@ const std::vector IS2D = { std::vector fusingParamsSet2D { emptyFusingSpec, - fusingBiasFC, + fusingBias, fusingRelu, fusingMultiplyPerChannel, - fusingPReluPerTensor + fusingScaleShift, // EltwiseMulAdd fusing + fusingPReluPerTensor, + fusingFakeQuantizePerChannelRelu, + fusingFakeQuantizePerTensorRelu, }; -const auto fullyConnectedParams2D = ::testing::Combine(::testing::ValuesIn(IS2D), - ::testing::ValuesIn(netPRCs), - ::testing::Values(ElementType::undefined), - ::testing::Values(ElementType::undefined), - ::testing::Values(helpers::InputLayerType::CONSTANT), - ::testing::Values(CommonTestUtils::DEVICE_CPU), - ::testing::ValuesIn(additionalConfig)); +std::vector fusingParamsSet2DBF16 { + emptyFusingSpec, + fusingBias, + fusingRelu, + fusingPReluPerTensor, +}; -const auto testParams2D = ::testing::Combine(fullyConnectedParams2D, +const auto testParams2D = ::testing::Combine(::testing::Combine(::testing::ValuesIn(IS2D), + ::testing::Values(ElementType::f32), + ::testing::Values(ElementType::undefined), + ::testing::Values(ElementType::undefined), + ::testing::Values(helpers::InputLayerType::CONSTANT), + ::testing::Values(CommonTestUtils::DEVICE_CPU), + ::testing::Values(emptyAdditionalConfig)), ::testing::Values(MatMulNodeType::FullyConnected), ::testing::ValuesIn(fusingParamsSet2D), ::testing::ValuesIn(filterSpecificParams())); +const auto testParams2DBF16 = ::testing::Combine(::testing::Combine(::testing::ValuesIn(IS2D), + ::testing::ValuesIn(netPRCs), + ::testing::Values(ElementType::undefined), + ::testing::Values(ElementType::undefined), + ::testing::Values(helpers::InputLayerType::CONSTANT), + ::testing::Values(CommonTestUtils::DEVICE_CPU), + ::testing::ValuesIn(additionalConfig)), + ::testing::Values(MatMulNodeType::FullyConnected), + ::testing::ValuesIn(fusingParamsSet2DBF16), + ::testing::ValuesIn(filterSpecificParams())); + INSTANTIATE_TEST_SUITE_P(smoke_FC_2D, MatMulLayerCPUTest, testParams2D, MatMulLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_FC_2D_BF16, MatMulLayerCPUTest, testParams2DBF16, MatMulLayerCPUTest::getTestCaseName); const std::vector IS3D = { {static_shapes_to_test_representation({{1, 32, 120}, {120, 5}}), {false, false}}, @@ -266,23 +291,46 @@ const std::vector IS3D = { std::vector fusingParamsSet3D { emptyFusingSpec, - fusingBiasFC + fusingBias, + fusingMultiplyPerChannel, + fusingFakeQuantizePerChannel, + fusingFakeQuantizePerTensorRelu, +}; + +std::vector fusingParamsSet3DBF16 { + emptyFusingSpec, + fusingBias, + fusingMultiplyPerChannel, }; const auto fullyConnectedParams3D = ::testing::Combine(::testing::ValuesIn(IS3D), - ::testing::ValuesIn(netPRCs), + ::testing::Values(ElementType::f32), ::testing::Values(ElementType::undefined), ::testing::Values(ElementType::undefined), ::testing::Values(helpers::InputLayerType::CONSTANT), ::testing::Values(CommonTestUtils::DEVICE_CPU), - ::testing::ValuesIn(additionalConfig)); + ::testing::Values(emptyAdditionalConfig)); + +const auto fullyConnectedParams3DBF16 = ::testing::Combine(::testing::ValuesIn(IS3D), + ::testing::ValuesIn(netPRCs), + ::testing::Values(ElementType::undefined), + ::testing::Values(ElementType::undefined), + ::testing::Values(helpers::InputLayerType::CONSTANT), + ::testing::Values(CommonTestUtils::DEVICE_CPU), + ::testing::ValuesIn(additionalConfig)); const auto testParams3D = ::testing::Combine(fullyConnectedParams3D, ::testing::Values(MatMulNodeType::FullyConnected), ::testing::ValuesIn(fusingParamsSet3D), ::testing::ValuesIn(filterSpecificParams())); +const auto testParams3DBF16 = ::testing::Combine(fullyConnectedParams3DBF16, + ::testing::Values(MatMulNodeType::FullyConnected), + ::testing::ValuesIn(fusingParamsSet3DBF16), + ::testing::ValuesIn(filterSpecificParams())); + INSTANTIATE_TEST_SUITE_P(smoke_FC_3D, MatMulLayerCPUTest, testParams3D, MatMulLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_FC_3D_BF16, MatMulLayerCPUTest, testParams3DBF16, MatMulLayerCPUTest::getTestCaseName); std::vector> filterAdditionalConfig_Brgemm() { std::vector> additionalConfig = { @@ -357,7 +405,9 @@ const std::vector IS = { {static_shapes_to_test_representation({{55, 12}, {12, 55}}), {true, false}}, {static_shapes_to_test_representation({{55, 12}, {12, 55}}), {false, true}}, {static_shapes_to_test_representation({{55, 12}, {12, 55}}), {true, true}}, +}; +const std::vector IS_Dynamic = { { { //dynamic case description each pair per each input has {{dynamic shape}, {{static shape case1}, {static shape case2}, ...} {{-1, -1}, {{55, 12}, {33, 7}}}, // input 0 @@ -507,7 +557,16 @@ const std::vector IS = { std::vector matmulFusingParams { emptyFusingSpec, fusingElu, - fusingSqrt + fusingSqrt, + fusingPReluPerTensor, + fusingMultiplyPerChannel, + fusingAddPerTensor, + fusingBias, + fusingFakeQuantizePerChannel, + /* @todo FQ unfolds into FQ + Convert + Substract + Multiply after LPT, + * so Relu cannot be fused in this case. Should be analysed */ + // fusingFakeQuantizePerChannelRelu, + fusingFakeQuantizePerTensorRelu, }; const auto matMulParams = ::testing::Combine(::testing::ValuesIn(IS), @@ -523,7 +582,70 @@ const auto testParams = ::testing::Combine(matMulParams, ::testing::ValuesIn(matmulFusingParams), ::testing::ValuesIn(filterSpecificParams())); -INSTANTIATE_TEST_SUITE_P(smoke_MM, MatMulLayerCPUTest, testParams, MatMulLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_MM_Static, MatMulLayerCPUTest, testParams, MatMulLayerCPUTest::getTestCaseName); + + +const auto matMulParamsDynamic = ::testing::Combine(::testing::ValuesIn(IS_Dynamic), + ::testing::ValuesIn(netPRCs), + ::testing::Values(ElementType::undefined), + ::testing::Values(ElementType::undefined), + ::testing::Values(helpers::InputLayerType::PARAMETER), + ::testing::Values(CommonTestUtils::DEVICE_CPU), + ::testing::ValuesIn(additionalConfig)); + +const auto testParamsDynamic = ::testing::Combine(matMulParamsDynamic, + ::testing::Values(MatMulNodeType::MatMul), + ::testing::Values(emptyFusingSpec), + ::testing::ValuesIn(filterSpecificParams())); + +INSTANTIATE_TEST_SUITE_P(smoke_MM_Dynamic, MatMulLayerCPUTest, testParamsDynamic, MatMulLayerCPUTest::getTestCaseName); + + +const std::vector IS_Dynamic_Fusing = { + { + { //dynamic case description each pair per each input has {{dynamic shape}, {{static shape case1}, {static shape case2}, ...} + {{-1, -1}, {{16, 12}, {33, 7}}}, // input 0 + {{-1, 33}, {{12, 33}, {7, 33}}} // input 1 + }, + {false, false} + }, + { + { //dynamic case description each pair per each input has {{dynamic shape}, {{static shape case1}, {static shape case2}, ...} + {{-1, -1, -1, -1}, {{1, 2, 32, 60}, {1, 2, 32, 30}}}, // input 0 + {{-1, 5}, {{60, 5}, {30, 5}}} // input 1 + }, + {false, false} + }, + { + { //dynamic case description each pair per each input has {{dynamic shape}, {{static shape case1}, {static shape case2}, ...} + {{-1, -1, -1}, {{7, 32, 60}, {7, 32, 30}}}, // input 0 + {{-1, -1, -1, 25}, {{3, 7, 60, 25}, {3, 7, 30, 25}}} // input 1 + }, + {false, false} + }, + { + { //dynamic case description each pair per each input has {{dynamic shape}, {{static shape case1}, {static shape case2}, ...} + {{-1, -1, -1}, {{10, 10, 10}, {5, 5, 5}}}, // input 0 + {{-1, -1, 5}, {{10, 10, 5}, {5, 5, 5}}} // input 1 + }, + {false, false} + }, +}; + +const auto matMulParamsDynamicFusing = ::testing::Combine(::testing::ValuesIn(IS_Dynamic_Fusing), + ::testing::ValuesIn(netPRCs), + ::testing::Values(ElementType::undefined), + ::testing::Values(ElementType::undefined), + ::testing::Values(helpers::InputLayerType::PARAMETER), + ::testing::Values(CommonTestUtils::DEVICE_CPU), + ::testing::ValuesIn(additionalConfig)); + +const auto testParamsDynamicFusing = ::testing::Combine(matMulParamsDynamicFusing, + ::testing::Values(MatMulNodeType::MatMul), + ::testing::ValuesIn(matmulFusingParams), + ::testing::ValuesIn(filterSpecificParams())); + +INSTANTIATE_TEST_SUITE_P(smoke_MM_Dynamic_Fusing, MatMulLayerCPUTest, testParamsDynamicFusing, MatMulLayerCPUTest::getTestCaseName); } // namespace matmul diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/mvn.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/mvn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/mvn.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/mvn.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/non_max_suppression.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/non_max_suppression.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/non_max_suppression.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/nonzero.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/nonzero.cpp similarity index 74% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/nonzero.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/nonzero.cpp index a0f9f609ce1..eb4853a54d8 100644 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/nonzero.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/nonzero.cpp @@ -7,6 +7,7 @@ #include "ngraph_functions/builders.hpp" #include "ngraph_functions/utils/ngraph_helpers.hpp" +#include "functional_test_utils/ov_tensor_utils.hpp" using namespace InferenceEngine; using namespace CPUTestUtils; @@ -21,6 +22,7 @@ typedef std::tuple< typedef std::tuple< NonZeroLayerTestParams, + std::pair, // start from, range CPUSpecificParams> NonZeroLayerCPUTestParamsSet; class NonZeroLayerCPUTest : public testing::WithParamInterface, @@ -28,8 +30,9 @@ class NonZeroLayerCPUTest : public testing::WithParamInterface obj) { NonZeroLayerTestParams basicParamsSet; + std::pair genData; CPUSpecificParams cpuParams; - std::tie(basicParamsSet, cpuParams) = obj.param; + std::tie(basicParamsSet, genData, cpuParams) = obj.param; std::string td; ElementType netType = ElementType::undefined; InputShape inputShape; @@ -44,28 +47,55 @@ public: result << CommonTestUtils::vec2str(shape) << "_"; } result << ")_"; + result << "StartFrom=" << genData.first << "_"; + result << "Range=" << genData.second << "_"; result << "netPRC=" << netType; result << CPUTestsBase::getTestCaseName(cpuParams); return result.str(); } + + void generate_inputs(const std::vector& targetInputStaticShapes) override { + inputs.clear(); + const auto& funcInputs = function->inputs(); + for (int i = 0; i < funcInputs.size(); ++i) { + const auto& funcInput = funcInputs[i]; + ov::runtime::Tensor tensor = ov::test::utils::create_and_fill_tensor(funcInput.get_element_type(), targetInputStaticShapes[i], range, startFrom); + inputs.insert({funcInput.get_node_shared_ptr(), tensor}); + } + } + + void compare(const std::vector &expected, const std::vector &actual) override { + const auto dims = targetStaticShapes[inferNum].front(); + if (!((startFrom == 0 && range == 1) || std::any_of(dims.begin(), dims.end(), [](size_t dim) { return dim == 0; } ))) { + SubgraphBaseTest::compare(expected, actual); + } + inferNum++; + } + protected: + size_t startFrom = 0, range = 10; + size_t inferNum = 0; + void SetUp() override { targetDevice = CommonTestUtils::DEVICE_CPU; NonZeroLayerTestParams basicParamsSet; + std::pair genData; CPUSpecificParams cpuParams; - std::tie(basicParamsSet, cpuParams) = this->GetParam(); + std::tie(basicParamsSet, genData, cpuParams) = this->GetParam(); std::tie(inFmts, outFmts, priority, selectedType) = cpuParams; ElementType netType = ElementType::undefined; InputShape inputShape; std::tie(inputShape, netType) = basicParamsSet; + std::tie(startFrom, range) = genData; + init_input_shapes({inputShape}); auto inputParams = ngraph::builder::makeDynamicParams(netType, inputDynamicShapes); auto nonZero = std::make_shared(inputParams[0]); // I8 was used as a special placeholder during calculating of primitive type if input was U8, // real runtime precision is still U8 - selectedType = makeSelectedTypeStr("ref_", netType == ElementType::u8 ? ElementType::i8 : netType); + selectedType = makeSelectedTypeStr("ref", netType == ElementType::u8 ? ElementType::i8 : netType); inputParams[0]->set_friendly_name("input"); function = makeNgraphFunction(netType, inputParams, nonZero, "NonZero"); } @@ -92,6 +122,11 @@ const std::vector netPrecisions = { ElementType::u8 }; +const std::vector> genData = { + {0, 10}, + {0, 1} +}; + std::vector inShapesDynamic = { { //dynamic shape @@ -116,6 +151,7 @@ std::vector inShapesDynamic = { {-1, -1, -1}, { //target static shapes {4, 4, 100}, + {5, 0, 2}, {4, 4, 200}, {4, 4, 300} } @@ -126,6 +162,7 @@ std::vector inShapesDynamic = { { //target static shapes {4, 4, 4, 100}, {4, 4, 4, 200}, + {5, 0, 0, 2}, {4, 4, 4, 300} } }, @@ -160,16 +197,20 @@ const auto paramsStatic = ::testing::Combine( ::testing::Combine( ::testing::ValuesIn(static_shapes_to_test_representation(inShapesStatic)), ::testing::ValuesIn(netPrecisions)), + ::testing::ValuesIn(genData), ::testing::ValuesIn(filterCPUInfoForDevice())); const auto paramsDynamic = ::testing::Combine( ::testing::Combine( ::testing::ValuesIn(inShapesDynamic), ::testing::ValuesIn(netPrecisions)), + ::testing::ValuesIn(genData), ::testing::ValuesIn(filterCPUInfoForDevice())); INSTANTIATE_TEST_SUITE_P(smoke_NonZeroStaticCPUTest, NonZeroLayerCPUTest, paramsStatic, NonZeroLayerCPUTest::getTestCaseName); INSTANTIATE_TEST_SUITE_P(smoke_NonZeroDynamicCPUTest, NonZeroLayerCPUTest, paramsDynamic, NonZeroLayerCPUTest::getTestCaseName); + } // namespace + } // namespace CPULayerTestsDefinitions diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/normalize.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/normalize.cpp similarity index 99% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/normalize.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/normalize.cpp index 4c4ae1d3bd6..a857cc94541 100755 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/normalize.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/normalize.cpp @@ -270,7 +270,7 @@ std::vector getCPUSpecificParams() { result.push_back(CPUSpecificParams({nhwc}, {nhwc}, {}, {})); if (with_cpu_x86_avx512f()) { result.push_back(CPUSpecificParams({nChw16c}, {nChw16c}, {}, {})); - } else if (with_cpu_x86_avx2()) { + } else { result.push_back(CPUSpecificParams({nChw8c}, {nChw8c}, {}, {})); } } diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/one_hot.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/one_hot.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/one_hot.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/one_hot.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/pad.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/pad.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/pad.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/pad.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/pooling.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/pooling.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/proposal.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/proposal.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/proposal.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/proposal.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/psroi_pooling.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/psroi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/psroi_pooling.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/psroi_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/range.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/range.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/range.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/range.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/reduce_ops.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/reduce_ops.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/reduce_ops.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/reduce_ops.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/region_yolo.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/region_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/region_yolo.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/region_yolo.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/reorg_yolo.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/reorg_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/reorg_yolo.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/reorg_yolo.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/rnn_cell.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/rnn_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/rnn_cell.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/rnn_cell.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/rnn_sequence.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/rnn_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/rnn_sequence.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/rnn_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/roi_pooling.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/roi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/roi_pooling.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/roi_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/roialign.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/roialign.cpp similarity index 99% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/roialign.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/roialign.cpp index a8587e46f1e..4492a458519 100644 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/roialign.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/roialign.cpp @@ -149,7 +149,7 @@ protected: auto roialign = std::make_shared(float_params[0], float_params[1], int_params[0], pooledH, pooledW, samplingRatio, spatialScale, mode); - selectedType = makeSelectedTypeStr("unknown", inputPrecision); + selectedType = makeSelectedTypeStr("ref", inputPrecision); if (inputPrecision == ElementType::bf16) { rel_threshold = 1e-2; } @@ -182,7 +182,7 @@ std::vector filterCPUInfoForDevice() { const std::vector netPrecisions = { ElementType::f32, - ElementType::bf16, + ElementType::bf16 }; const std::vector spatialBinXVector = { 2 }; diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/scatter_ND_update.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/scatter_ND_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/scatter_ND_update.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/scatter_ND_update.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/scatter_elements_update.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/scatter_elements_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/scatter_elements_update.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/scatter_elements_update.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/scatter_update.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/scatter_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/scatter_update.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/scatter_update.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/select.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/select.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/select.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/select.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/shape_ops.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/shape_ops.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/shape_ops.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/shape_ops.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/shapeof.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/shapeof.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/shapeof.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/shapeof.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/shuffle_channels.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/shuffle_channels.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/shuffle_channels.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/shuffle_channels.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/slice.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/slice.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/slice.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/slice.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/softmax.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/softmax.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/softmax.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/softmax.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/space_to_batch.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/space_to_batch.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/space_to_batch.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/space_to_batch.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/space_to_depth.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/space_to_depth.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/space_to_depth.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/space_to_depth.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/split.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/split.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/split.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/strided_slice.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/strided_slice.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/strided_slice.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/strided_slice.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/tile.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/tile.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/tile.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/tile.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/topk.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/topk.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/topk.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/topk.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/transpose.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/transpose.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/transpose.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/transpose.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/variadic_split.cpp b/src/tests/functional/plugin/cpu/single_layer_tests/variadic_split.cpp similarity index 77% rename from inference-engine/tests/functional/plugin/cpu/single_layer_tests/variadic_split.cpp rename to src/tests/functional/plugin/cpu/single_layer_tests/variadic_split.cpp index d7395f31597..99d3a9a141b 100644 --- a/inference-engine/tests/functional/plugin/cpu/single_layer_tests/variadic_split.cpp +++ b/src/tests/functional/plugin/cpu/single_layer_tests/variadic_split.cpp @@ -78,7 +78,7 @@ TEST_P(VariadicSplitLayerCPUTest, CompareWithRefs) { SKIP_IF_CURRENT_TEST_IS_DISABLED() run(); -// CheckPluginRelatedResults(executableNetwork, "Split"); + CheckPluginRelatedResults(executableNetwork, "Split"); } namespace { @@ -180,8 +180,16 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit5D_CPU_Nspc2NcspSpecial, VariadicSpl ::testing::Values(perChannelsToPlanar_5D)), VariadicSplitLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit4D_CPU_planar_static, VariadicSplitLayerCPUTest, + ::testing::Combine( + ::testing::Values(InputShape{ {}, {{3, 6, 5, 6}} }), + ::testing::Values(2, 3), + ::testing::Values(std::vector{1, 3, -1}), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(planar_4D, planar_4D_ref, perChannels_4D)), + VariadicSplitLayerCPUTest::getTestCaseName); + const std::vector inputShapes4D_planar = { - { {}, {{3, 6, 5, 6}} }, { // dynamic {-1, -1, -1, -1}, @@ -210,7 +218,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit4D_CPU_planar, VariadicSplitLayerCPU ::testing::Values(2, 3), ::testing::Values(std::vector{1, 3, -1}), ::testing::ValuesIn(netPrecisions), - ::testing::Values(planar_4D, planar_4D_ref, perChannels_4D)), + ::testing::Values(planar_4D_ref, perChannels_4D)), VariadicSplitLayerCPUTest::getTestCaseName); const std::vector inputShapes4D_block = { @@ -255,8 +263,16 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit4D_CPU_Block16, VariadicSplitLayerCP ::testing::Values(blocked16_4D_ref)), VariadicSplitLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit5D_CPU_planar_static, VariadicSplitLayerCPUTest, + ::testing::Combine( + ::testing::Values(InputShape{ {}, {{3, 24, 4, 5, 6}} }), + ::testing::Values(2, 3, 4), + ::testing::Values(std::vector{2, 1, -1}), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(planar_5D, planar_5D_ref, perChannels_5D)), + VariadicSplitLayerCPUTest::getTestCaseName); + const std::vector inputShapes5D_planar = { - { {}, {{3, 24, 4, 5, 6}} }, { // dynamic {-1, -1, -1, -1, -1}, @@ -285,7 +301,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit5D_CPU_planar, VariadicSplitLayerCPU ::testing::Values(2, 3, 4), ::testing::Values(std::vector{2, 1, -1}), ::testing::ValuesIn(netPrecisions), - ::testing::Values(planar_5D, planar_5D_ref, perChannels_5D)), + ::testing::Values(planar_5D_ref, perChannels_5D)), VariadicSplitLayerCPUTest::getTestCaseName); const std::vector inputShapes5D_block = { @@ -330,8 +346,16 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit5D_CPU_Block16, VariadicSplitLayerCP ::testing::Values(blocked16_5D_ref)), VariadicSplitLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit3D_static, VariadicSplitLayerCPUTest, + ::testing::Combine( + ::testing::Values(InputShape{ {}, {{14, 7, 21}} }), + ::testing::Values(0, 1, 2), + ::testing::Values(std::vector{2, 4, -1}), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(CPUSpecificParams{{}, {}, {}, "unknown"}, CPUSpecificParams{{}, {}, {"ref"}, "ref"})), + VariadicSplitLayerCPUTest::getTestCaseName); + const std::vector inputShapes3D = { - { {}, {{14, 7, 21}} }, { // dynamic {-1, -1, -1}, @@ -360,11 +384,19 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit3D, VariadicSplitLayerCPUTest, ::testing::Values(0, 1, 2), ::testing::Values(std::vector{2, 4, -1}), ::testing::ValuesIn(netPrecisions), + ::testing::Values(CPUSpecificParams{{}, {}, {"ref"}, "ref"})), + VariadicSplitLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit2D_static, VariadicSplitLayerCPUTest, + ::testing::Combine( + ::testing::Values(InputShape{ {}, {{6, 12}} }), + ::testing::Values(0, 1), + ::testing::Values(std::vector{2, -1}), + ::testing::ValuesIn(netPrecisions), ::testing::Values(CPUSpecificParams{{}, {}, {}, "unknown"}, CPUSpecificParams{{}, {}, {"ref"}, "ref"})), VariadicSplitLayerCPUTest::getTestCaseName); const std::vector inputShapes2D = { - { {}, {{6, 12}} }, { // dynamic {-1, -1}, @@ -393,11 +425,19 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit2D, VariadicSplitLayerCPUTest, ::testing::Values(0, 1), ::testing::Values(std::vector{2, -1}), ::testing::ValuesIn(netPrecisions), + ::testing::Values(CPUSpecificParams{{}, {}, {"ref"}, "ref"})), + VariadicSplitLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit1D_static, VariadicSplitLayerCPUTest, + ::testing::Combine( + ::testing::Values(InputShape{ {}, {{10}} }), + ::testing::Values(0), + ::testing::Values(std::vector{2, 1, 1, -1}), + ::testing::ValuesIn(netPrecisions), ::testing::Values(CPUSpecificParams{{}, {}, {}, "unknown"}, CPUSpecificParams{{}, {}, {"ref"}, "ref"})), VariadicSplitLayerCPUTest::getTestCaseName); const std::vector inputShapes1D = { - { {}, {{10}} }, { // dynamic {-1}, @@ -426,7 +466,37 @@ INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit1D, VariadicSplitLayerCPUTest, ::testing::Values(0), ::testing::Values(std::vector{2, 1, 1, -1}), ::testing::ValuesIn(netPrecisions), - ::testing::Values(CPUSpecificParams{{}, {}, {}, "unknown"}, CPUSpecificParams{{}, {}, {"ref"}, "ref"})), + ::testing::Values(CPUSpecificParams{{}, {}, {"ref"}, "ref"})), + VariadicSplitLayerCPUTest::getTestCaseName); + +const std::vector inputShapes4D_zero_dims = { + { + // dynamic + {-1, -1, -1, -1}, + // target + { + {1, 7, 7, 7}, + {3, 7, 7, 7}, + } + } +}; + +INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit4D_CPU_zero_dims, VariadicSplitLayerCPUTest, + ::testing::Combine( + ::testing::ValuesIn(inputShapes4D_zero_dims), + ::testing::Values(1, 2, 3), + ::testing::Values(std::vector{3, 4, -1}, std::vector{3, -1, 4}, std::vector{-1, 3, 4}), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(planar_4D_ref)), + VariadicSplitLayerCPUTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_VariadicSplit4D_CPU_zero_dims_nspc_ncsp, VariadicSplitLayerCPUTest, + ::testing::Combine( + ::testing::ValuesIn(inputShapes4D_zero_dims), + ::testing::Values(1), + ::testing::Values(std::vector{3, 4, -1}, std::vector{3, -1, 4}, std::vector{-1, 3, 4}), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(perChannelsToPlanar_4D)), VariadicSplitLayerCPUTest::getTestCaseName); } // namespace diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/include/conv_concat.hpp b/src/tests/functional/plugin/cpu/subgraph_tests/include/conv_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/include/conv_concat.hpp rename to src/tests/functional/plugin/cpu/subgraph_tests/include/conv_concat.hpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/include/fuse_muladd_ewsimple.hpp b/src/tests/functional/plugin/cpu/subgraph_tests/include/fuse_muladd_ewsimple.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/include/fuse_muladd_ewsimple.hpp rename to src/tests/functional/plugin/cpu/subgraph_tests/include/fuse_muladd_ewsimple.hpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/include/fuse_transpose_reorder.hpp b/src/tests/functional/plugin/cpu/subgraph_tests/include/fuse_transpose_reorder.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/include/fuse_transpose_reorder.hpp rename to src/tests/functional/plugin/cpu/subgraph_tests/include/fuse_transpose_reorder.hpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/add_convert_to_reorder.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/add_convert_to_reorder.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/add_convert_to_reorder.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/add_convert_to_reorder.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/align_matmul_input_ranks.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/align_matmul_input_ranks.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/align_matmul_input_ranks.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/align_matmul_input_ranks.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/concat_const_inplace.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/concat_const_inplace.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/concat_const_inplace.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/concat_const_inplace.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/conv3d_reshape.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/conv3d_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/conv3d_reshape.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/conv3d_reshape.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/conv_concat.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/conv_concat.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/conv_concat.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/conv_maxpool_activ.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/conv_maxpool_activ.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/conv_maxpool_activ.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/conv_maxpool_activ.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/eltwise_chain.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/eltwise_chain.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/eltwise_chain.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/eltwise_chain.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_muladd_ewsimple.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_muladd_ewsimple.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_muladd_ewsimple.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_muladd_ewsimple.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_scaleshift_and_fakequantize.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_scaleshift_and_fakequantize.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_scaleshift_and_fakequantize.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_scaleshift_and_fakequantize.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_split_concat_pair_to_interpolate.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_split_concat_pair_to_interpolate.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_split_concat_pair_to_interpolate.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_split_concat_pair_to_interpolate.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_transpose_reorder.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_transpose_reorder.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/fuse_transpose_reorder.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/fuse_transpose_reorder.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/input_noreorder_eltwise_bf16.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/input_noreorder_eltwise_bf16.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/input_noreorder_eltwise_bf16.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/input_noreorder_eltwise_bf16.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/matmul_strided_inputs_outputs.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/matmul_strided_inputs_outputs.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/matmul_strided_inputs_outputs.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/matmul_strided_inputs_outputs.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/not_fused_conv_simple_op.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/not_fused_conv_simple_op.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/not_fused_conv_simple_op.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/not_fused_conv_simple_op.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/param_result_custom_blob.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/param_result_custom_blob.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/param_result_custom_blob.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/param_result_custom_blob.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/reshape_permute_conv_permute_reshape_act.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/reshape_permute_conv_permute_reshape_act.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/reshape_permute_conv_permute_reshape_act.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/reshape_permute_conv_permute_reshape_act.cpp diff --git a/src/tests/functional/plugin/cpu/subgraph_tests/src/static_zero_dims.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/static_zero_dims.cpp new file mode 100644 index 00000000000..1082dfa8a2f --- /dev/null +++ b/src/tests/functional/plugin/cpu/subgraph_tests/src/static_zero_dims.cpp @@ -0,0 +1,62 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "shared_test_classes/base/ov_subgraph.hpp" +#include "ngraph_functions/builders.hpp" +#include "functional_test_utils/ov_tensor_utils.hpp" +#include "functional_test_utils/skip_tests_config.hpp" + +using namespace ov::test; + +namespace SubgraphTestsDefinitions { + +class StaticZeroDims : public SubgraphBaseTest { +protected: + void SetUp() override { + targetDevice = CommonTestUtils::DEVICE_CPU; + + InputShape inputShapes{{}, {{7, 4}}}; + + init_input_shapes({inputShapes}); + + auto ngPrc = ngraph::element::f32; + auto inputParams = ngraph::builder::makeDynamicParams(ngPrc, inputDynamicShapes); + + auto splitAxisOp = std::make_shared(ngraph::element::i64, ngraph::Shape{}, std::vector{0}); + std::vector splitLenght = {1, 0, 6}; + auto splitLengthsOp = std::make_shared(ngraph::element::i32, ngraph::Shape{splitLenght.size()}, splitLenght); + auto varSplit = std::make_shared(inputParams[0], splitAxisOp, splitLengthsOp); + + auto relu1 = std::make_shared(varSplit->output(0)); + + auto numInRoi = ngraph::builder::makeConstant(ngPrc, {0}, std::vector{}, false); + auto expDet = std::make_shared(varSplit->output(1), numInRoi, 10); + auto relu2 = std::make_shared(expDet); + + auto relu3 = std::make_shared(varSplit->output(2)); + + ngraph::NodeVector results{relu1, relu2, relu3}; + function = std::make_shared(results, inputParams, "StaticZeroDims"); + } + + void compare(const std::vector &expected, const std::vector &actual) override { + ASSERT_EQ(expected.size(), actual.size()); + for (size_t i = 0; i < expected.size(); i++) { + // skip second output tensor because it's output ExperimentalDetectronTopKROIs: input dims [0, 4] + // so according to spec output values undefined + if (i == 1) { + continue; + } + ov::test::utils::compare(expected[i], actual[i], abs_threshold, rel_threshold); + } + } +}; + +TEST_F(StaticZeroDims, smoke_CompareWithRefs) { + SKIP_IF_CURRENT_TEST_IS_DISABLED() + + run(); +} + +} // namespace SubgraphTestsDefinitions \ No newline at end of file diff --git a/inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/tile_with_two_output_edges.cpp b/src/tests/functional/plugin/cpu/subgraph_tests/src/tile_with_two_output_edges.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/subgraph_tests/src/tile_with_two_output_edges.cpp rename to src/tests/functional/plugin/cpu/subgraph_tests/src/tile_with_two_output_edges.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/test_utils/convolution_params.hpp b/src/tests/functional/plugin/cpu/test_utils/convolution_params.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/test_utils/convolution_params.hpp rename to src/tests/functional/plugin/cpu/test_utils/convolution_params.hpp diff --git a/inference-engine/tests/functional/plugin/cpu/test_utils/cpu_test_utils.cpp b/src/tests/functional/plugin/cpu/test_utils/cpu_test_utils.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/test_utils/cpu_test_utils.cpp rename to src/tests/functional/plugin/cpu/test_utils/cpu_test_utils.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/test_utils/cpu_test_utils.hpp b/src/tests/functional/plugin/cpu/test_utils/cpu_test_utils.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/test_utils/cpu_test_utils.hpp rename to src/tests/functional/plugin/cpu/test_utils/cpu_test_utils.hpp diff --git a/inference-engine/tests/functional/plugin/cpu/test_utils/fusing_test_utils.cpp b/src/tests/functional/plugin/cpu/test_utils/fusing_test_utils.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/cpu/test_utils/fusing_test_utils.cpp rename to src/tests/functional/plugin/cpu/test_utils/fusing_test_utils.cpp diff --git a/inference-engine/tests/functional/plugin/cpu/test_utils/fusing_test_utils.hpp b/src/tests/functional/plugin/cpu/test_utils/fusing_test_utils.hpp similarity index 82% rename from inference-engine/tests/functional/plugin/cpu/test_utils/fusing_test_utils.hpp rename to src/tests/functional/plugin/cpu/test_utils/fusing_test_utils.hpp index 22fd8278b4a..709269dc4ab 100644 --- a/inference-engine/tests/functional/plugin/cpu/test_utils/fusing_test_utils.hpp +++ b/src/tests/functional/plugin/cpu/test_utils/fusing_test_utils.hpp @@ -5,6 +5,7 @@ #pragma once #include "cpu_test_utils.hpp" +#include #include namespace CPUTestUtils { @@ -75,6 +76,24 @@ protected: bool checkFusingPosition = true; }; +static size_t getFusingAxis(const std::shared_ptr& node) { + if (std::dynamic_pointer_cast(node)) + return node->get_output_partial_shape(0).size() - 1; // last dimension + else + return 1; // second dimension +} + +static ngraph::Shape generatePerChannelShape(const std::shared_ptr& node) { + const auto shape = node->get_output_partial_shape(0); + if (shape.size() == 1) + IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; + ngraph::Shape perChannelShape(shape.size(), 1); + const auto channelAxis = getFusingAxis(node); + perChannelShape[channelAxis] = shape[channelAxis].get_length(); + + return perChannelShape; +} + /* FUSING PATTERNS */ const auto emptyFusingSpec = fusingSpecificParams{nullptr, {}}; @@ -120,11 +139,7 @@ const auto fusingSqrt = fusingSpecificParams{std::make_shared(std: const auto fusingPReluPerChannel = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); + ngraph::Shape newShape = generatePerChannelShape(inpNode); auto data = NGraphFunctions::Utils::generateVector(ngraph::shape_size(newShape)); return ngraph::builder::makeActivation(inpNode, ngPrc, ngraph::helpers::LeakyRelu, newShape, data); }, "PRelu(PerChannel)"}}), {"PRelu"}}; @@ -166,11 +181,7 @@ const auto fusingReluAdd = fusingSpecificParams{std::make_shared(s return ngraph::builder::makeActivation(inpNode, ngPrc, ngraph::helpers::Relu); }, "Relu"}, {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); + ngraph::Shape newShape = generatePerChannelShape(inpNode); auto constNode = ngraph::builder::makeConstant(ngPrc, newShape, std::vector{}, true); return std::make_shared(inpNode, constNode); }, "Add(PerChannel)"}}), {"Relu", "Add"}}; @@ -180,40 +191,24 @@ const auto fusingReluScaleShift = fusingSpecificParams{std::make_shared inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); - auto constNode = ngraph::builder::makeConstant(ngPrc, newShape, std::vector{}, true); - return std::make_shared(inpNode, constNode); + ngraph::Shape newShape = generatePerChannelShape(inpNode); + auto constNode = ngraph::builder::makeConstant(ngPrc, newShape, std::vector{}, true); + return std::make_shared(inpNode, constNode); }, "Multiply(PerChannel)"}, {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); + ngraph::Shape newShape = generatePerChannelShape(inpNode); auto constNode = ngraph::builder::makeConstant(ngPrc, newShape, std::vector{}, true); return std::make_shared(inpNode, constNode); }, "Add(PerChannel)"}}), {"Relu", "Add"}}; const auto fusingScaleShift = fusingSpecificParams{ std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params) { - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); - auto constNode = ngraph::builder::makeConstant(ngPrc, newShape, std::vector{}, true); - return std::make_shared(inpNode, constNode); + ngraph::Shape newShape = generatePerChannelShape(inpNode); + auto constNode = ngraph::builder::makeConstant(ngPrc, newShape, std::vector{}, true); + return std::make_shared(inpNode, constNode); }, "Multiply(PerChannel)"}, {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params) { - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); + ngraph::Shape newShape = generatePerChannelShape(inpNode); auto constNode = ngraph::builder::makeConstant(ngPrc, newShape, std::vector{}, true); return std::make_shared(inpNode, constNode); }, "Add(PerChannel)"}}), {"Add"} }; @@ -228,22 +223,14 @@ const auto fusingFakeQuantizePerTensor = fusingSpecificParams{ std::make_shared< const auto fusingFakeQuantizePerChannel = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ auto localPrc = inpNode->get_element_type(); - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); + ngraph::Shape newShape = generatePerChannelShape(inpNode); return ngraph::builder::makeFakeQuantize(inpNode, localPrc, 256, newShape); }, "FakeQuantize(PerChannel)"}}), {"FakeQuantize"}}; const auto fusingFakeQuantizePerChannelRelu = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ auto localPrc = inpNode->get_element_type(); - auto shape = inpNode->get_output_partial_shape(0); - if (shape.size() == 1) - IE_THROW() << "If shape.size() == 1 then Granularity can be PerTensor only"; - ngraph::Shape newShape(shape.size(), 1); - newShape[1] = shape[1].get_length(); + ngraph::Shape newShape = generatePerChannelShape(inpNode); return ngraph::builder::makeFakeQuantize(inpNode, localPrc, 256, newShape); }, "FakeQuantize(PerChannel)"}, {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ @@ -291,60 +278,56 @@ const auto fusingSumEluFQ = fusingSpecificParams{std::make_shared( const auto fusingMultiplyPerTensor = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ ngraph::Shape secondMultInShape(1, 1); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Multiply(PerTensor)"}}), {"Multiply"}}; const auto fusingMultiplyPerChannel = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - ngraph::Shape secondMultInShape(inpNode->get_output_partial_shape(0).size(), 1); - secondMultInShape[1] = inpNode->get_output_partial_shape(0)[1].get_length(); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + ngraph::Shape secondMultInShape = generatePerChannelShape(inpNode); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Multiply(PerChannel)"}}), {"Multiply"}}; const auto fusingAddPerTensor = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ ngraph::Shape secondMultInShape(1, 1); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Add(PerTensor)"}}), {"Add"}}; const auto fusingAddPerChannel = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - ngraph::Shape secondMultInShape(inpNode->get_output_partial_shape(0).size(), 1); - secondMultInShape[1] = inpNode->get_output_partial_shape(0)[1].get_length(); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + ngraph::Shape secondMultInShape = generatePerChannelShape(inpNode); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Add(PerChannel)"}}), {"Add"}}; const auto fusingSubtractPerTensor = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ ngraph::Shape secondMultInShape(1, 1); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Subtract(PerTensor)"}}), {"Subtract"}}; const auto fusingSubtractPerChannel = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - ngraph::Shape secondMultInShape(inpNode->get_output_partial_shape(0).size(), 1); - secondMultInShape[1] = inpNode->get_output_partial_shape(0)[1].get_length(); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + ngraph::Shape secondMultInShape = generatePerChannelShape(inpNode); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Subtract(PerChannel)"}}), {"Subtract"}}; const auto fusingDividePerTensor = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ ngraph::Shape secondMultInShape(1, 1); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Divide(PerTensor)"}}), {"Divide"}}; const auto fusingDividePerChannel = fusingSpecificParams{std::make_shared(std::vector{ {[](std::shared_ptr inpNode, const ngraph::element::Type& ngPrc, ngraph::ParameterVector& params){ - ngraph::Shape secondMultInShape(inpNode->get_output_partial_shape(0).size(), 1); - secondMultInShape[1] = inpNode->get_output_partial_shape(0)[1].get_length(); - auto secondMultInput = ngraph::builder::makeConstant(ngPrc, ngraph::Shape(secondMultInShape), std::vector{}, true); + ngraph::Shape secondMultInShape = generatePerChannelShape(inpNode); + auto secondMultInput = ngraph::builder::makeConstant(ngPrc, secondMultInShape, std::vector{}, true); return std::make_shared(inpNode, secondMultInput); }, "Divide(PerChannel)"}}), {"Divide"}}; diff --git a/inference-engine/tests/functional/plugin/gna/CMakeLists.txt b/src/tests/functional/plugin/gna/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/gna/CMakeLists.txt rename to src/tests/functional/plugin/gna/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/gna/Import_export_tests/import_export_act_conv_act.cpp b/src/tests/functional/plugin/gna/Import_export_tests/import_export_act_conv_act.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/Import_export_tests/import_export_act_conv_act.cpp rename to src/tests/functional/plugin/gna/Import_export_tests/import_export_act_conv_act.cpp diff --git a/src/tests/functional/plugin/gna/Import_export_tests/import_export_batch_size.cpp b/src/tests/functional/plugin/gna/Import_export_tests/import_export_batch_size.cpp new file mode 100644 index 00000000000..da0e3c88a12 --- /dev/null +++ b/src/tests/functional/plugin/gna/Import_export_tests/import_export_batch_size.cpp @@ -0,0 +1,91 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "ngraph_functions/builders.hpp" +#include "base/import_export_base/import_export_base.hpp" + +namespace LayerTestDefinitions { + +class ImportBatchTest : public FuncTestUtils::ImportNetworkTestBase { +protected: + InferenceEngine::Blob::Ptr GenerateInput(const InferenceEngine::InputInfo& info) const override { + return FuncTestUtils::createAndFillBlob(info.getTensorDesc(), 0.2f, -0.1f); + } + + void SetUp() override { + InferenceEngine::Precision netPrecision; + std::vector inputShape; + std::string _; + std::tie(inputShape, netPrecision, targetDevice, exportConfiguration, importConfiguration, _) = this->GetParam(); + auto ngPrc = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision); + + auto params = ngraph::builder::makeParams(ngPrc, {inputShape}); + + auto mul_const_1 = ngraph::builder::makeConstant(ngPrc, { inputShape[1], 2048 }, + CommonTestUtils::generate_float_numbers(2048 * inputShape[1], -0.1f, 0.1f), false); + + auto matmul_1 = std::make_shared(params[0], mul_const_1); + auto sigmoid_1 = std::make_shared(matmul_1); + + auto mul_const_2 = ngraph::builder::makeConstant(ngPrc, { 2048, 3425 }, + CommonTestUtils::generate_float_numbers(2048 * 3425, -0.1f, 0.1f), false); + + auto matmul_2 = std::make_shared(sigmoid_1, mul_const_2); + + function = std::make_shared(matmul_2, params, "ExportImportNetwork"); + } +}; + +TEST_P(ImportBatchTest, CompareWithRefImpl) { + Run(); +}; + +const std::vector> inputShapes = { + {1, 440}, + {2, 440}, + {4, 128} +}; + +const std::vector netPrecisions = { + InferenceEngine::Precision::FP32, + InferenceEngine::Precision::FP16 +}; + +const std::vector> exportConfigs = { + { + {"GNA_DEVICE_MODE", "GNA_SW_EXACT"}, + {"GNA_SCALE_FACTOR_0", "327.67"} + } +}; + +const std::vector> importConfigs = { + { + {"GNA_DEVICE_MODE", "GNA_SW_EXACT"} + } +}; + +const std::vector appHeader = { + "" +}; + +INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkBatchCase, ImportBatchTest, + ::testing::Combine( + ::testing::ValuesIn(inputShapes), + ::testing::ValuesIn(netPrecisions), + ::testing::Values(CommonTestUtils::DEVICE_GNA), + ::testing::ValuesIn(exportConfigs), + ::testing::ValuesIn(importConfigs), + ::testing::ValuesIn(appHeader)), + ImportBatchTest::getTestCaseName); +} // namespace LayerTestDefinitions diff --git a/inference-engine/tests/functional/plugin/gna/Import_export_tests/import_export_memory_layer.cpp b/src/tests/functional/plugin/gna/Import_export_tests/import_export_memory_layer.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/Import_export_tests/import_export_memory_layer.cpp rename to src/tests/functional/plugin/gna/Import_export_tests/import_export_memory_layer.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/4d_eltwise.cpp b/src/tests/functional/plugin/gna/pass_tests/4d_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/4d_eltwise.cpp rename to src/tests/functional/plugin/gna/pass_tests/4d_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/act_maxpool_reordering.cpp b/src/tests/functional/plugin/gna/pass_tests/act_maxpool_reordering.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/act_maxpool_reordering.cpp rename to src/tests/functional/plugin/gna/pass_tests/act_maxpool_reordering.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/broadcast_const_with_fq.cpp b/src/tests/functional/plugin/gna/pass_tests/broadcast_const_with_fq.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/broadcast_const_with_fq.cpp rename to src/tests/functional/plugin/gna/pass_tests/broadcast_const_with_fq.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/concat_restrictions.cpp b/src/tests/functional/plugin/gna/pass_tests/concat_restrictions.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/concat_restrictions.cpp rename to src/tests/functional/plugin/gna/pass_tests/concat_restrictions.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/convert_dwsc_to_scaleshifts.cpp b/src/tests/functional/plugin/gna/pass_tests/convert_dwsc_to_scaleshifts.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/convert_dwsc_to_scaleshifts.cpp rename to src/tests/functional/plugin/gna/pass_tests/convert_dwsc_to_scaleshifts.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/convert_matmul_to_fullyconnected.cpp b/src/tests/functional/plugin/gna/pass_tests/convert_matmul_to_fullyconnected.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/convert_matmul_to_fullyconnected.cpp rename to src/tests/functional/plugin/gna/pass_tests/convert_matmul_to_fullyconnected.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/convert_matmul_to_pointwise_conv.cpp b/src/tests/functional/plugin/gna/pass_tests/convert_matmul_to_pointwise_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/convert_matmul_to_pointwise_conv.cpp rename to src/tests/functional/plugin/gna/pass_tests/convert_matmul_to_pointwise_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/convert_padded_to_valid_conv.cpp b/src/tests/functional/plugin/gna/pass_tests/convert_padded_to_valid_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/convert_padded_to_valid_conv.cpp rename to src/tests/functional/plugin/gna/pass_tests/convert_padded_to_valid_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/convolution_align_filter.cpp b/src/tests/functional/plugin/gna/pass_tests/convolution_align_filter.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/convolution_align_filter.cpp rename to src/tests/functional/plugin/gna/pass_tests/convolution_align_filter.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/decompose_2d_conv.cpp b/src/tests/functional/plugin/gna/pass_tests/decompose_2d_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/decompose_2d_conv.cpp rename to src/tests/functional/plugin/gna/pass_tests/decompose_2d_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/decompose_mvn.cpp b/src/tests/functional/plugin/gna/pass_tests/decompose_mvn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/decompose_mvn.cpp rename to src/tests/functional/plugin/gna/pass_tests/decompose_mvn.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/eltwise_split_over_channels_pass.cpp b/src/tests/functional/plugin/gna/pass_tests/eltwise_split_over_channels_pass.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/eltwise_split_over_channels_pass.cpp rename to src/tests/functional/plugin/gna/pass_tests/eltwise_split_over_channels_pass.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/fq_activation.cpp b/src/tests/functional/plugin/gna/pass_tests/fq_activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/fq_activation.cpp rename to src/tests/functional/plugin/gna/pass_tests/fq_activation.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/fq_fusion_with_multiple_weights.cpp b/src/tests/functional/plugin/gna/pass_tests/fq_fusion_with_multiple_weights.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/fq_fusion_with_multiple_weights.cpp rename to src/tests/functional/plugin/gna/pass_tests/fq_fusion_with_multiple_weights.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/fq_fusion_with_sigmoid.cpp b/src/tests/functional/plugin/gna/pass_tests/fq_fusion_with_sigmoid.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/fq_fusion_with_sigmoid.cpp rename to src/tests/functional/plugin/gna/pass_tests/fq_fusion_with_sigmoid.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/fq_maxpool_reordering.cpp b/src/tests/functional/plugin/gna/pass_tests/fq_maxpool_reordering.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/fq_maxpool_reordering.cpp rename to src/tests/functional/plugin/gna/pass_tests/fq_maxpool_reordering.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/fq_outputs_activation_.cpp b/src/tests/functional/plugin/gna/pass_tests/fq_outputs_activation_.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/fq_outputs_activation_.cpp rename to src/tests/functional/plugin/gna/pass_tests/fq_outputs_activation_.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/fq_with_multiple_out_connections.cpp b/src/tests/functional/plugin/gna/pass_tests/fq_with_multiple_out_connections.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/fq_with_multiple_out_connections.cpp rename to src/tests/functional/plugin/gna/pass_tests/fq_with_multiple_out_connections.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/insert_copy_layer_before_self_concat.cpp b/src/tests/functional/plugin/gna/pass_tests/insert_copy_layer_before_self_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/insert_copy_layer_before_self_concat.cpp rename to src/tests/functional/plugin/gna/pass_tests/insert_copy_layer_before_self_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/insert_transpose_before_matmul.cpp b/src/tests/functional/plugin/gna/pass_tests/insert_transpose_before_matmul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/insert_transpose_before_matmul.cpp rename to src/tests/functional/plugin/gna/pass_tests/insert_transpose_before_matmul.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/insert_transpose_between_convs.cpp b/src/tests/functional/plugin/gna/pass_tests/insert_transpose_between_convs.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/insert_transpose_between_convs.cpp rename to src/tests/functional/plugin/gna/pass_tests/insert_transpose_between_convs.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/layers_restrictions.cpp b/src/tests/functional/plugin/gna/pass_tests/layers_restrictions.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/layers_restrictions.cpp rename to src/tests/functional/plugin/gna/pass_tests/layers_restrictions.cpp diff --git a/inference-engine/tests/functional/plugin/gna/pass_tests/remove_permutations_NHWC_to_NCHW_pass.cpp b/src/tests/functional/plugin/gna/pass_tests/remove_permutations_NHWC_to_NCHW_pass.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/pass_tests/remove_permutations_NHWC_to_NCHW_pass.cpp rename to src/tests/functional/plugin/gna/pass_tests/remove_permutations_NHWC_to_NCHW_pass.cpp diff --git a/inference-engine/tests/functional/plugin/gna/scale_factors_tests/const_input_add.cpp b/src/tests/functional/plugin/gna/scale_factors_tests/const_input_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/scale_factors_tests/const_input_add.cpp rename to src/tests/functional/plugin/gna/scale_factors_tests/const_input_add.cpp diff --git a/inference-engine/tests/functional/plugin/gna/scale_factors_tests/eltwise_act_fq.cpp b/src/tests/functional/plugin/gna/scale_factors_tests/eltwise_act_fq.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/scale_factors_tests/eltwise_act_fq.cpp rename to src/tests/functional/plugin/gna/scale_factors_tests/eltwise_act_fq.cpp diff --git a/inference-engine/tests/functional/plugin/gna/scale_factors_tests/test_fq_scale_factors.cpp b/src/tests/functional/plugin/gna/scale_factors_tests/test_fq_scale_factors.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/scale_factors_tests/test_fq_scale_factors.cpp rename to src/tests/functional/plugin/gna/scale_factors_tests/test_fq_scale_factors.cpp diff --git a/inference-engine/tests/functional/plugin/gna/scale_factors_tests/weighable_layer_without_fq.cpp b/src/tests/functional/plugin/gna/scale_factors_tests/weighable_layer_without_fq.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/scale_factors_tests/weighable_layer_without_fq.cpp rename to src/tests/functional/plugin/gna/scale_factors_tests/weighable_layer_without_fq.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/caching/caching_tests.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/caching/caching_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/caching/caching_tests.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/caching/caching_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/exec_net_base.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/exec_net_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/exec_net_base.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/exec_net_base.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/get_metric.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/get_metric.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/callback.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/callback.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/config.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/config.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/config.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/io_blob.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/io_blob.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/io_blob.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/io_blob.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/memory_states.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/memory_states.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/memory_states.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/memory_states.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/multitheading.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/multitheading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/multitheading.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/multitheading.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/wait.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/wait.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/callback.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/callback.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/infer_request_dynamic.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/inference_chaining.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/wait.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/wait.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_plugin/core_intergration.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_plugin/core_intergration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_plugin/core_intergration.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/ov_plugin/core_intergration.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/configuration_tests.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/configuration_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/configuration_tests.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/configuration_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_integration.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_integration.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_threading_tests.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_threading_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_threading_tests.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/core_threading_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/life_time.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/life_time.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/life_time.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/life_time.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/version.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/version.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/version.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/behavior/plugin/version.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/core_config.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/core_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/core_config.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/core_config.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/execution_graph_tests/add_output.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/execution_graph_tests/add_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/execution_graph_tests/add_output.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/execution_graph_tests/add_output.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_export_multi_inputs.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_export_multi_inputs.cpp similarity index 89% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_export_multi_inputs.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_export_multi_inputs.cpp index c2e381b5542..487dcf3f4e1 100644 --- a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_export_multi_inputs.cpp +++ b/src/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_export_multi_inputs.cpp @@ -17,11 +17,12 @@ namespace LayerTestsDefinitions { class ImportMultiInput : public FuncTestUtils::ImportNetworkTestBase { protected: void SetUp() override { + std::vector inputShape; InferenceEngine::Precision netPrecision; - std::tie(netPrecision, targetDevice, exportConfiguration, importConfiguration, applicationHeader) = this->GetParam(); + std::tie(inputShape, netPrecision, targetDevice, exportConfiguration, importConfiguration, applicationHeader) = this->GetParam(); auto ngPrc = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision); - auto input = ngraph::builder::makeParams(ngPrc, {{1, 10}, {1, 10}}); + auto input = ngraph::builder::makeParams(ngPrc, {inputShape, inputShape}); auto mul1 = ngraph::builder::makeEltwise(input[0], input[1], ngraph::helpers::EltwiseTypes::ADD); auto result = std::make_shared(mul1); @@ -40,6 +41,10 @@ TEST_P(ImportMultiInputChanged, CompareWithRefImpl) { TestRun(true); }; +const std::vector> inputShape = { + {1, 10} +}; + const std::vector netPrecisions = { InferenceEngine::Precision::FP32 }; @@ -98,6 +103,7 @@ const std::vector> importConfigsUnchanged = { INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkGNA, ImportMultiInputUnchanged, ::testing::Combine( + ::testing::ValuesIn(inputShape), ::testing::ValuesIn(netPrecisions), ::testing::Values(CommonTestUtils::DEVICE_GNA), ::testing::ValuesIn(exportConfigs), @@ -107,6 +113,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkGNA, ImportMultiInputUnchanged, INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkGNA, ImportMultiInputChanged, ::testing::Combine( + ::testing::ValuesIn(inputShape), ::testing::ValuesIn(netPrecisions), ::testing::Values(CommonTestUtils::DEVICE_GNA), ::testing::ValuesIn(exportConfigs), diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_reshape_permute_conv.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_reshape_permute_conv.cpp similarity index 94% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_reshape_permute_conv.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_reshape_permute_conv.cpp index 110b0fd66fe..0f8bd3d1fc9 100644 --- a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_reshape_permute_conv.cpp +++ b/src/tests/functional/plugin/gna/shared_tests_instances/import_export_tests/import_reshape_permute_conv.cpp @@ -52,6 +52,10 @@ TEST_P(ImportExportGNAModelChanged, ReshapePermuteConv) { TestRun(true); }; +const std::vector> inputShapes = { + {1, 336} +}; + const std::vector netPrecisions = { InferenceEngine::Precision::FP32, InferenceEngine::Precision::FP16 @@ -92,6 +96,7 @@ const std::vector appHeaders = { INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkGNA, ImportExportGNAModelUnchanged, ::testing::Combine( + ::testing::ValuesIn(inputShapes), ::testing::ValuesIn(netPrecisions), ::testing::Values(CommonTestUtils::DEVICE_GNA), ::testing::ValuesIn(exportConfigs), @@ -101,6 +106,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkGNA, ImportExportGNAModelUnchanged, INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkGNA, ImportExportGNAModelChanged, ::testing::Combine( + ::testing::ValuesIn(inputShapes), ::testing::ValuesIn(netPrecisions), ::testing::Values(CommonTestUtils::DEVICE_GNA), ::testing::ValuesIn(exportConfigs), diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/activation.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/activation.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/activation.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_i420.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_i420.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_i420.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_i420.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution_negative.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution_negative.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution_negative.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/convolution_negative.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/eltwise.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/eltwise.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/fake_quantize.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/fake_quantize.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/fake_quantize.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/fake_quantize.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/low_precision.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/low_precision.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/low_precision.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/low_precision.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/mat_mul.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/mat_mul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/mat_mul.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/mat_mul.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/memory.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/memory.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/memory.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/memory.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/negative_layer_support_test.hpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/negative_layer_support_test.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/negative_layer_support_test.hpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/negative_layer_support_test.hpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/pooling.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/pooling.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/pooling.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/power.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/power.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/power.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/power.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/split.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/split.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/split.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/tensor_iterator.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/tensor_iterator.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/tensor_iterator.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/single_layer_tests/tensor_iterator.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/skip_tests_check.hpp b/src/tests/functional/plugin/gna/shared_tests_instances/skip_tests_check.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/skip_tests_check.hpp rename to src/tests/functional/plugin/gna/shared_tests_instances/skip_tests_check.hpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/skip_tests_config.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/skip_tests_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/skip_tests_config.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/skip_tests_config.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_concats_eltwise.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_concats_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_concats_eltwise.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_concats_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_fq.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_fq.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_fq.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/activation_fq.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/basic_lstm.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/basic_lstm.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/basic_lstm.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/basic_lstm.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/broadcast_power.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/broadcast_power.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/broadcast_power.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/broadcast_power.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/cascade_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/cascade_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/cascade_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/cascade_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/clamp_fq.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/clamp_fq.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/clamp_fq.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/clamp_fq.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_conv.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_conv.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_multi_input.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_multi_input.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_multi_input.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_multi_input.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization_during_memory_requantization.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization_during_memory_requantization.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization_during_memory_requantization.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/concat_quantization_during_memory_requantization.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/connect_split_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/connect_split_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/connect_split_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/connect_split_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_conv_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_conv_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_conv_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_strided_slice_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_strided_slice_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_strided_slice_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/const_strided_slice_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/constant_result.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/constant_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/constant_result.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/constant_result.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_eltwise.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_eltwise.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_relu.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_relu.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/conv_fq_relu.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/convolution_relu_sequence.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/convolution_relu_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/convolution_relu_sequence.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/convolution_relu_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/copy_before_squeeze.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/copy_before_squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/copy_before_squeeze.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/copy_before_squeeze.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/crop4d.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/crop4d.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/crop4d.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/crop4d.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/delayed_copy_layer.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/delayed_copy_layer.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/delayed_copy_layer.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/delayed_copy_layer.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_conv_eltwise.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_conv_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_conv_eltwise.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_conv_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_reshape_activation.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_reshape_activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_reshape_activation.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/eltwise_reshape_activation.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fc_conv_fc.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fc_conv_fc.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fc_conv_fc.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fc_conv_fc.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/first_connect_input_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/first_connect_input_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/first_connect_input_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/first_connect_input_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_conv_fq_affine.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_conv_fq_affine.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_conv_fq_affine.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_conv_fq_affine.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_with_mixed_levels.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_with_mixed_levels.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_with_mixed_levels.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/fq_with_mixed_levels.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/handling_orientation_conv.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/handling_orientation_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/handling_orientation_conv.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/handling_orientation_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_conv.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_conv.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_split_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_split_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_split_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/input_split_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_act_add.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_act_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_act_add.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_act_add.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_LSTMCell.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_eltwise_reshape_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_eltwise_reshape_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_eltwise_reshape_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_eltwise_reshape_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_fq_concat_prelu.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_fq_concat_prelu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_fq_concat_prelu.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/memory_fq_concat_prelu.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multi_input_scale.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multi_input_scale.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multi_input_scale.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multi_input_scale.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multioutput_eltwise_squeeze_eltwise.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multioutput_eltwise_squeeze_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multioutput_eltwise_squeeze_eltwise.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multioutput_eltwise_squeeze_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_LSTMCell.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_input_fq.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_input_fq.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_input_fq.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/multiple_input_fq.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/negative_memory_layer_offset.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/negative_memory_layer_offset.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/negative_memory_layer_offset.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/negative_memory_layer_offset.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/relu_split_reshape.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/relu_split_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/relu_split_reshape.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/relu_split_reshape.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshapre_permute_reshape.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshapre_permute_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshapre_permute_reshape.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/reshapre_permute_reshape.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scale_shift.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scale_shift.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scale_shift.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scale_shift.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scaleshift_conv_scaleshift.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scaleshift_conv_scaleshift.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scaleshift_conv_scaleshift.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/scaleshift_conv_scaleshift.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/softsign.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/softsign.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/softsign.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/softsign.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_concat_multi_inputs.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_concat_multi_inputs.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_concat_multi_inputs.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_concat_multi_inputs.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_conv_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_relu.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_relu.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_relu.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_trivial_permute_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_trivial_permute_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_trivial_permute_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/split_trivial_permute_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/stridedslice_conv.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/stridedslice_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/stridedslice_conv.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/stridedslice_conv.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/tensor_names.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/tensor_names.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/tensor_names.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/tensor_names.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/transpose_conv_transpose_squeeze.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/transpose_conv_transpose_squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/transpose_conv_transpose_squeeze.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/transpose_conv_transpose_squeeze.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/trivial_concat.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/trivial_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/trivial_concat.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/trivial_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/two_fake_quantize_to_fullyconnected.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/two_fake_quantize_to_fullyconnected.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/two_fake_quantize_to_fullyconnected.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/subgraph_tests/two_fake_quantize_to_fullyconnected.cpp diff --git a/inference-engine/tests/functional/plugin/gna/shared_tests_instances/transpose_add.cpp b/src/tests/functional/plugin/gna/shared_tests_instances/transpose_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gna/shared_tests_instances/transpose_add.cpp rename to src/tests/functional/plugin/gna/shared_tests_instances/transpose_add.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/CMakeLists.txt b/src/tests/functional/plugin/gpu/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/CMakeLists.txt rename to src/tests/functional/plugin/gpu/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/gpu/behavior/cache.cpp b/src/tests/functional/plugin/gpu/behavior/cache.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/behavior/cache.cpp rename to src/tests/functional/plugin/gpu/behavior/cache.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/concurrency/gpu_concurrency_tests.cpp b/src/tests/functional/plugin/gpu/concurrency/gpu_concurrency_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/concurrency/gpu_concurrency_tests.cpp rename to src/tests/functional/plugin/gpu/concurrency/gpu_concurrency_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/remote_blob_tests/cldnn_remote_blob_tests.cpp b/src/tests/functional/plugin/gpu/remote_blob_tests/cldnn_remote_blob_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/remote_blob_tests/cldnn_remote_blob_tests.cpp rename to src/tests/functional/plugin/gpu/remote_blob_tests/cldnn_remote_blob_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/remote_blob_tests/dx11_remote_ctx_test.cpp b/src/tests/functional/plugin/gpu/remote_blob_tests/dx11_remote_ctx_test.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/remote_blob_tests/dx11_remote_ctx_test.cpp rename to src/tests/functional/plugin/gpu/remote_blob_tests/dx11_remote_ctx_test.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/remote_blob_tests/gpu_remote_tensor_tests.cpp b/src/tests/functional/plugin/gpu/remote_blob_tests/gpu_remote_tensor_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/remote_blob_tests/gpu_remote_tensor_tests.cpp rename to src/tests/functional/plugin/gpu/remote_blob_tests/gpu_remote_tensor_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/remote_blob_tests/remote_blob_helpers.hpp b/src/tests/functional/plugin/gpu/remote_blob_tests/remote_blob_helpers.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/remote_blob_tests/remote_blob_helpers.hpp rename to src/tests/functional/plugin/gpu/remote_blob_tests/remote_blob_helpers.hpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/caching/caching_tests.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/caching/caching_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/caching/caching_tests.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/caching/caching_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_graph_info.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_net_base.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_net_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_net_base.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/exec_net_base.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/get_metric.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/get_metric.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/locale.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/locale.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/locale.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/executable_network/locale.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/callback.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/callback.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/config.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/config.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/config.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/io_blob.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/io_blob.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/io_blob.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/io_blob.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/multithreading.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/multithreading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/multithreading.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/multithreading.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/perf_counters.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/set_blob_by_type.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/wait.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/wait.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/exec_net_base.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/cancellation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/io_tensor.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/multithreading.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/perf_counters.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_remote.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_remote.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_remote.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/ov_remote.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp similarity index 88% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp index 52524ead178..888794e4253 100644 --- a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp +++ b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/configuration_tests.cpp @@ -68,6 +68,10 @@ namespace { {InferenceEngine::PluginConfigParams::KEY_DEVICE_ID, "DEVICE_UNKNOWN"}}, {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_CPU}, {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, "NAN"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "-1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "should be int"}}, {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, "DOESN'T EXIST"}}, @@ -92,7 +96,13 @@ namespace { {InferenceEngine::PluginConfigParams::KEY_DEVICE_ID, "DEVICE_UNKNOWN"}}, {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, - {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, "NAN"}} + {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, "NAN"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , + CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "-1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , + CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "should be int"}} }; @@ -195,6 +205,12 @@ namespace { {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU}, {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::LATENCY}, {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT_NUM_REQUESTS, "1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "0"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "2"}}, {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, {InferenceEngine::PluginConfigParams::KEY_PERFORMANCE_HINT, InferenceEngine::PluginConfigParams::THROUGHPUT}}, @@ -222,7 +238,16 @@ namespace { {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, InferenceEngine::PluginConfigParams::LOG_DEBUG}}, {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, - {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, InferenceEngine::PluginConfigParams::LOG_TRACE}} + {InferenceEngine::PluginConfigParams::KEY_LOG_LEVEL, InferenceEngine::PluginConfigParams::LOG_TRACE}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , + CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "0"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , + CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "1"}}, + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES , + CommonTestUtils::DEVICE_GPU + std::string(",") + CommonTestUtils::DEVICE_CPU}, + {InferenceEngine::MultiDeviceConfigParams::KEY_AUTO_NETWORK_PRIORITY, "2"}} }; const std::vector> auto_batch_configs = { diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_integration.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_integration.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/core_threading_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/life_time.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/life_time.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/life_time.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/life_time.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/version.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/version.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/version.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/plugin/version.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/blob_tests/dynamic_batch.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/blob_tests/dynamic_batch.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/blob_tests/dynamic_batch.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/blob_tests/dynamic_batch.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/core_config.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/core_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/core_config.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/core_config.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/nms_transformation_for_last_node.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/nms_transformation_for_last_node.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/nms_transformation_for_last_node.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/nms_transformation_for_last_node.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/remove_parameter.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/remove_parameter.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/remove_parameter.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/execution_graph_info/remove_parameter.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/add_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/clamp_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_child_and_output.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_different_precision_on_children.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_intermediate_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/concat_with_split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_backprop_data_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_qdq_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/depth_to_space_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fully_connected_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_convert_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/gemm_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/groupconvolution_qdq_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/interpolate_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_constant_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/move_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_to_group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/multiply_with_one_parent_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/mvn_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/normalize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pad_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/prelu_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_max_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_mean_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_min_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reduce_sum_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/relu_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/reshape_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/shuffle_channels_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/squeeze_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/strided_slice_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/subtract_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_after_matmul_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/transpose_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/unsqueeze_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/low_precision_transformations/variadic_split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/multi/gpu_remote_blob_tests.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/multi/gpu_remote_blob_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/multi/gpu_remote_blob_tests.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/multi/gpu_remote_blob_tests.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/conv_bias_fusion.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/activation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/activation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/activation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_norm.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_norm.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_norm.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_norm.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/batch_to_space.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/comparison.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/comparison.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/comparison.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/comparison.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/concat.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/concat.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/concat.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/conversion.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/conversion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/conversion.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/conversion.cpp diff --git a/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convert_color_i420.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convert_color_i420.cpp new file mode 100644 index 00000000000..a74aed3f77d --- /dev/null +++ b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convert_color_i420.cpp @@ -0,0 +1,58 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include "single_layer_tests/convert_color_i420.hpp" +#include "common_test_utils/test_constants.hpp" + +using namespace LayerTestsDefinitions; + +namespace { + +const std::vector inShapes_nhwc = { + {1, 10, 10, 1} +}; + +const std::vector inTypes = { + ov::element::u8, ov::element::f32 +}; + +const auto testCase_values = ::testing::Combine( + ::testing::ValuesIn(inShapes_nhwc), + ::testing::ValuesIn(inTypes), + ::testing::Bool(), + ::testing::Bool(), + ::testing::Values(CommonTestUtils::DEVICE_GPU) +); + +INSTANTIATE_TEST_SUITE_P(smoke_TestsConvertColorI420, ConvertColorI420LayerTest, testCase_values, ConvertColorI420LayerTest::getTestCaseName); + +const auto testCase_accuracy_values = ::testing::Combine( + ::testing::Values(ov::Shape{1, 16*6, 16, 1}), + ::testing::Values(ov::element::u8), + ::testing::Bool(), + ::testing::Bool(), + ::testing::Values(CommonTestUtils::DEVICE_GPU) +); + +INSTANTIATE_TEST_SUITE_P(smoke_TestsConvertColorI420_acc, + ConvertColorI420AccuracyTest, + testCase_accuracy_values, + ConvertColorI420LayerTest::getTestCaseName); + +const auto testCase_accuracy_values_nightly = ::testing::Combine( + ::testing::Values(ov::Shape{1, 256*256, 256, 1}), + ::testing::Values(ov::element::u8), + ::testing::Values(false), + ::testing::Values(true), + ::testing::Values(CommonTestUtils::DEVICE_GPU) +); + +INSTANTIATE_TEST_SUITE_P(nightly_TestsConvertColorI420_acc, + ConvertColorI420AccuracyTest, + testCase_accuracy_values_nightly, + ConvertColorI420LayerTest::getTestCaseName); + +} // namespace diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/cum_sum.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/cum_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/cum_sum.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/cum_sum.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/deformable_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/depth_to_space.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/detection_output.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/detection_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/detection_output.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/detection_output.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/eltwise.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/eltwise.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_offsets_sum.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_bag_packed_sum.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/embedding_segments_sum.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/experimental_detectron_roifeatureextractor.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/extract_image_patches.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/fake_quantize.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_elements.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_elements.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_nd.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_nd.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_nd.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_nd.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_tree.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_tree.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_tree.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gather_tree.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/grn.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/grn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/grn.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/grn.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/group_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_cell.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_cell.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_cell.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/gru_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/interpolate.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/interpolate.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/interpolate.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/interpolate.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/log_softmax.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/log_softmax.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/log_softmax.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/log_softmax.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/logical.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/logical.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/logical.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/logical.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lrn.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lrn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lrn.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lrn.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_cell.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/lstm_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mat_mul.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mat_mul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mat_mul.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mat_mul.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/minimum_maximum.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mvn.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mvn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mvn.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/mvn.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/non_max_suppression.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/normalize_l2.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pad.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pad.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pad.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pad.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pooling.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pooling.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/pooling.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/power.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/power.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/power.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/power.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/prior_box_clustered.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/proposal.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/proposal.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/proposal.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/proposal.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reduce_ops.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/region_yolo.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/region_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/region_yolo.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/region_yolo.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reorg_yolo.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reshape.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reshape.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reshape.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/reverse_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_cell.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/rnn_sequence.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/roi_align.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/roi_align.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/roi_align.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/roi_align.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_elements_update.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_nd_update.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_nd_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_nd_update.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_nd_update.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_update.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_update.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_update.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/scatter_update.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/select.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/select.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/select.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/select.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/shuffle_channels.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/softmax.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/softmax.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/softmax.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/softmax.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_batch.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/space_to_depth.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/split.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/split.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/split.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/squeeze_unsqueeze.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/strided_slice.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/strided_slice.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/strided_slice.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/strided_slice.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/tile.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/tile.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/tile.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/tile.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/topk.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/topk.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/topk.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/topk.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/transpose.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/transpose.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/transpose.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/transpose.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/variadic_split.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/variadic_split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/variadic_split.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/variadic_split.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/skip_tests_config.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/skip_tests_config.cpp similarity index 94% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/skip_tests_config.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/skip_tests_config.cpp index 0c5c61b35e8..eeb729c5bdd 100644 --- a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/skip_tests_config.cpp +++ b/src/tests/functional/plugin/gpu/shared_tests_instances/skip_tests_config.cpp @@ -79,11 +79,6 @@ std::vector disabledTestPatterns() { R"(.*EltwiseLayerTest.*OpType=Pow.*NetType=i64.*)", // TODO: Issue 67910 R"(.*smoke_PrePostProcess_GPU.*two_inputs_trivial.*)", - // TODO: 68525 - R"(.*CanSetInBlobWithDifferentPrecision/netPRC=(I4|U4).*)", - R"(.*CanSetInBlobWithDifferentPrecision/netPRC=BIN.*)", - R"(.*CanSetOutBlobWithDifferentPrecision/netPRC=(I4|U4).*)", - R"(.*CanSetOutBlobWithDifferentPrecision/netPRC=BIN.*)", // TODO: Issue: 67486 R"(.*(SoftMaxLayerTest).*)", // TODO: Issue: 68712 diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/constant_result.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/constant_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/constant_result.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/constant_result.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/get_output_before_activation.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/matmul_squeeze_add.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/multiply_add.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/multiply_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/multiply_add.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/multiply_add.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/parameter_result.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/parameter_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/parameter_result.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/parameter_result.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/perm_conv_perm_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/preprocess.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/preprocess.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/preprocess.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/preprocess.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/quantized_group_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reduce_eltwise.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reduce_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reduce_eltwise.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reduce_eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_permute_conv_permute_reshape_act.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/scale_shift.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/scale_shift.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/scale_shift.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/scale_shift.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/split_conv_concat.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/tensor_names.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/tensor_names.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/tensor_names.cpp rename to src/tests/functional/plugin/gpu/shared_tests_instances/subgraph_tests/tensor_names.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/single_layer_tests/loop.cpp b/src/tests/functional/plugin/gpu/single_layer_tests/loop.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/single_layer_tests/loop.cpp rename to src/tests/functional/plugin/gpu/single_layer_tests/loop.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/single_layer_tests/tensor_iterator.cpp b/src/tests/functional/plugin/gpu/single_layer_tests/tensor_iterator.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/single_layer_tests/tensor_iterator.cpp rename to src/tests/functional/plugin/gpu/single_layer_tests/tensor_iterator.cpp diff --git a/inference-engine/tests/functional/plugin/gpu/subgraph_tests/shared_constant.cpp b/src/tests/functional/plugin/gpu/subgraph_tests/shared_constant.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/gpu/subgraph_tests/shared_constant.cpp rename to src/tests/functional/plugin/gpu/subgraph_tests/shared_constant.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/CMakeLists.txt b/src/tests/functional/plugin/myriad/CMakeLists.txt similarity index 75% rename from inference-engine/tests/functional/plugin/myriad/CMakeLists.txt rename to src/tests/functional/plugin/myriad/CMakeLists.txt index 5c85da26a88..2af8a20a8e3 100644 --- a/inference-engine/tests/functional/plugin/myriad/CMakeLists.txt +++ b/src/tests/functional/plugin/myriad/CMakeLists.txt @@ -13,7 +13,7 @@ addIeTargetTest( ROOT ${CMAKE_CURRENT_SOURCE_DIR} INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} - ${IE_MAIN_SOURCE_DIR}/tests_deprecated/behavior/vpu/myriad_tests/helpers + ${OpenVINO_SOURCE_DIR}/src/tests_deprecated/behavior/vpu/myriad_tests/helpers ${XLINK_INCLUDE} ${XLINK_PLATFORM_INCLUDE} DEPENDENCIES @@ -27,8 +27,8 @@ addIeTargetTest( DEFINES __PC__ OBJECT_FILES - ${IE_MAIN_SOURCE_DIR}/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.hpp - ${IE_MAIN_SOURCE_DIR}/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.cpp + ${OpenVINO_SOURCE_DIR}/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.hpp + ${OpenVINO_SOURCE_DIR}/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.cpp LABELS VPU MYRIAD diff --git a/inference-engine/tests/functional/plugin/myriad/common/myriad_common_test_utils.cpp b/src/tests/functional/plugin/myriad/common/myriad_common_test_utils.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/common/myriad_common_test_utils.cpp rename to src/tests/functional/plugin/myriad/common/myriad_common_test_utils.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/common/myriad_common_test_utils.hpp b/src/tests/functional/plugin/myriad/common/myriad_common_test_utils.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/common/myriad_common_test_utils.hpp rename to src/tests/functional/plugin/myriad/common/myriad_common_test_utils.hpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/conversions/dynamic_shape_resolver.cpp b/src/tests/functional/plugin/myriad/ngraph/conversions/dynamic_shape_resolver.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/conversions/dynamic_shape_resolver.cpp rename to src/tests/functional/plugin/myriad/ngraph/conversions/dynamic_shape_resolver.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/operations/dynamic_shape_resolver.cpp b/src/tests/functional/plugin/myriad/ngraph/operations/dynamic_shape_resolver.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/operations/dynamic_shape_resolver.cpp rename to src/tests/functional/plugin/myriad/ngraph/operations/dynamic_shape_resolver.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/operations/out_shape_of_reshape.cpp b/src/tests/functional/plugin/myriad/ngraph/operations/out_shape_of_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/operations/out_shape_of_reshape.cpp rename to src/tests/functional/plugin/myriad/ngraph/operations/out_shape_of_reshape.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/operations/static_shape_broadcast.cpp b/src/tests/functional/plugin/myriad/ngraph/operations/static_shape_broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/operations/static_shape_broadcast.cpp rename to src/tests/functional/plugin/myriad/ngraph/operations/static_shape_broadcast.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/operations/static_shape_nonzero.cpp b/src/tests/functional/plugin/myriad/ngraph/operations/static_shape_nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/operations/static_shape_nonzero.cpp rename to src/tests/functional/plugin/myriad/ngraph/operations/static_shape_nonzero.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/convert_extract_image_patches_to_reorg_yolo_vpu.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/convert_extract_image_patches_to_reorg_yolo_vpu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/convert_extract_image_patches_to_reorg_yolo_vpu.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/convert_extract_image_patches_to_reorg_yolo_vpu.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_binary_elementwise.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_binary_elementwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_binary_elementwise.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_binary_elementwise.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_broadcast.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_broadcast.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_broadcast.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_clamp.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_clamp.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_clamp.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_clamp.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_concat.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_concat.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_concat.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_convert.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_convert.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_convert.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_convert.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_elements.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_elements.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_nd.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_nd.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_nd.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_gather_nd.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_matmul.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_matmul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_matmul.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_matmul.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_non_max_suppression.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_non_max_suppression.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_non_max_suppression.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_nonzero.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_nonzero.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_nonzero.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reduce.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reduce.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reduce.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reduce.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reshape.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reshape.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_reshape.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_roialign.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_roialign.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_roialign.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_roialign.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_scatter.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_scatter.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_scatter.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_scatter.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_split.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_split.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_split.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_squeeze.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_squeeze.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_squeeze.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_topk.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_topk.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_topk.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_topk.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_transpose.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_transpose.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_transpose.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_transpose.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unary_elementwise.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unary_elementwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unary_elementwise.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unary_elementwise.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unsqueeze.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unsqueeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unsqueeze.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_unsqueeze.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_variadic_split.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_variadic_split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_variadic_split.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/dynamic_to_static_shape_variadic_split.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/eliminate_shapeof_after_dsr.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/eliminate_shapeof_after_dsr.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/eliminate_shapeof_after_dsr.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/eliminate_shapeof_after_dsr.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/merge_gather_gather_elements.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/merge_gather_gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/merge_gather_gather_elements.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/merge_gather_gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/ngraph/transformations/merge_subsequent_dsr_operations.cpp b/src/tests/functional/plugin/myriad/ngraph/transformations/merge_subsequent_dsr_operations.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/ngraph/transformations/merge_subsequent_dsr_operations.cpp rename to src/tests/functional/plugin/myriad/ngraph/transformations/merge_subsequent_dsr_operations.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/run_tests_myriad_multistick.sh b/src/tests/functional/plugin/myriad/run_tests_myriad_multistick.sh similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/run_tests_myriad_multistick.sh rename to src/tests/functional/plugin/myriad/run_tests_myriad_multistick.sh diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching/caching_tests.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching/caching_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching/caching_tests.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/caching/caching_tests.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/core_integration.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/core_integration.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/exec_network_base.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/exec_network_base.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/exec_network_base.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/executable_network/exec_network_base.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/callback.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/callback.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/config.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/config.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/config.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/io_blob.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/io_blob.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/io_blob.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/io_blob.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/multithreading.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/multithreading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/multithreading.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/multithreading.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/wait.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/wait.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request_dynamic.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request_dynamic.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request_dynamic.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/infer_request_dynamic.cpp diff --git a/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/exec_graph_info.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/exec_graph_info.cpp new file mode 100644 index 00000000000..6ca8d1df490 --- /dev/null +++ b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/exec_graph_info.cpp @@ -0,0 +1,47 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#include "behavior/ov_executable_network/exec_graph_info.hpp" + +#include "ie_plugin_config.hpp" +#include + +using namespace ov::test::behavior; +namespace { +const std::vector netPrecisions = { + ov::element::f16, + ov::element::f32, +}; +const std::vector> configs = { + {}, +}; +const std::vector> multiConfigs = { + {{InferenceEngine::MultiDeviceConfigParams::KEY_MULTI_DEVICE_PRIORITIES, CommonTestUtils::DEVICE_MYRIAD}}}; + +const std::vector> heteroConfigs = { + {{"TARGET_FALLBACK", CommonTestUtils::DEVICE_MYRIAD}}}; + +INSTANTIATE_TEST_SUITE_P(smoke_BehaviorTests, + OVExecGraphImportExportTest, + ::testing::Combine( + ::testing::ValuesIn(netPrecisions), + ::testing::Values(CommonTestUtils::DEVICE_MYRIAD), + ::testing::ValuesIn(configs)), + OVExecGraphImportExportTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_Auto_BehaviorTests, + OVExecGraphImportExportTest, + ::testing::Combine( + ::testing::ValuesIn(netPrecisions), + ::testing::Values(CommonTestUtils::DEVICE_AUTO), + ::testing::ValuesIn(multiConfigs)), + OVExecGraphImportExportTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_Hetero_BehaviorTests, + OVExecGraphImportExportTest, + ::testing::Combine(::testing::ValuesIn(netPrecisions), + ::testing::Values(CommonTestUtils::DEVICE_HETERO), + ::testing::ValuesIn(heteroConfigs)), + OVExecGraphImportExportTest::getTestCaseName); + +} // namespace diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/get_metric.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/ov_exec_net.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/ov_exec_net.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/ov_exec_net.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_executable_network/ov_exec_net.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_plugin/core_integration.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_plugin/core_integration.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/ov_plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/configuration_tests.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/configuration_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/configuration_tests.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/configuration_tests.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_integration.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_integration.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_integration.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_integration.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_threading_tests.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_threading_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_threading_tests.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/core_threading_tests.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/life_time.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/life_time.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/life_time.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/life_time.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/version.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/version.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/version.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/plugin/version.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/behavior/preprocessing/set_preprocess.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/blob_tests/detect_network_batch_test.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/blob_tests/detect_network_batch_test.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/blob_tests/detect_network_batch_test.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/blob_tests/detect_network_batch_test.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/core_config.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/core_config.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/core_config.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/core_config.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/import_export_tests/import_nonzero.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/import_export_tests/import_nonzero.cpp similarity index 90% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/import_export_tests/import_nonzero.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/import_export_tests/import_nonzero.cpp index 4555ac1ec9d..888ac6eb712 100644 --- a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/import_export_tests/import_nonzero.cpp +++ b/src/tests/functional/plugin/myriad/shared_tests_instances/import_export_tests/import_nonzero.cpp @@ -26,8 +26,11 @@ const std::vector appHeaders = { "APPLICATION_HEADER" }; +std::vector inputShape = ngraph::Shape{1000}; + INSTANTIATE_TEST_SUITE_P(smoke_ImportNetworkCase, ImportNonZero, ::testing::Combine( + ::testing::Values(inputShape), ::testing::ValuesIn(netPrecisions), ::testing::Values(CommonTestUtils::DEVICE_MYRIAD), ::testing::ValuesIn(exportConfigs), diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/myriad_remote_blobs_tests.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/myriad_remote_blobs_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/myriad_remote_blobs_tests.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/myriad_remote_blobs_tests.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/activation.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/activation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/activation.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/activation.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/comparison.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/comparison.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/comparison.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/comparison.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/concat.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/concat.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/concat.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/convolution.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/convolution.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/convolution.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/ctc_greedy_decoder_seq_len.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/eltwise.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/eltwise.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/eltwise.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_elements.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_elements.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_nd.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_nd.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_nd.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/gather_nd.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/interpolate.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/interpolate.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/interpolate.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/interpolate.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/logical.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/logical.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/logical.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/logical.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mat_mul.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mat_mul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mat_mul.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mat_mul.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/minimum_maximum.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/minimum_maximum.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/minimum_maximum.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/minimum_maximum.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mvn.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mvn.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mvn.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/mvn.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/nonzero.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/nonzero.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/nonzero.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pad.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pad.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pad.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pad.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pooling.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pooling.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/pooling.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/proposal.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/proposal.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/proposal.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/proposal.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/roi_pooling.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/roi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/roi_pooling.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/roi_pooling.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/split.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/split.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/split.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/strided_slice.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/strided_slice.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/strided_slice.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/strided_slice.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/topk.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/topk.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/topk.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/single_layer_tests/topk.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp similarity index 90% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp index 1a7695a867a..aaacb7b8df1 100644 --- a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp +++ b/src/tests/functional/plugin/myriad/shared_tests_instances/skip_tests_config.cpp @@ -52,14 +52,19 @@ std::vector disabledTestPatterns() { // Not implemented yet: R"(.*Behavior.*ExecutableNetworkBaseTest.*canSetConfigToExecNet.*)", R"(.*Behavior.*ExecutableNetworkBaseTest.*canExport.*)", - // TODO: CVS-65013 + // TODO: Issue 69529 + R"(.*Behavior.*OVExecGraphImportExportTest.*ieImport.*)", + R"(.*Behavior.*OVExecGraphImportExportTest.*ExportedIENetwork.*)", + // TODO: Issue 73501 + R"(.*_Hetero_Behavior.*OVExecGraphImportExportTest.*)", + // TODO: Issue 65013 R"(.*LoadNetworkCreateDefaultExecGraphResult.*)", // Not expected behavior R"(.*Behavior.*ExecNetSetPrecision.*canSetOutputPrecisionForNetwork.*U8.*)", R"(.*CoreThreadingTestsWithIterations.*)", R"(.*OVExecutableNetworkBaseTest.*CanSetConfigToExecNet.*)", R"(.*OVClassNetworkTestP.*(SetAffinityWithConstantBranches|SetAffinityWithKSO).*)", - // TODO: Issue: CVS-69640 + // TODO: Issue 69640 R"(.*EltwiseLayerTest.*OpType=Prod.*)", R"(.*EltwiseLayerTest.*OpType=SqDiff.*PARAMETER.*SCALAR.*)", R"(.*EltwiseLayerTest.*TS=\(\(16\.16\.96\)_\(96\)_\).*OpType=SqDiff.*)", diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/stress_tests/stress_tests.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/stress_tests/stress_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/stress_tests/stress_tests.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/stress_tests/stress_tests.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/constant_result.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/constant_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/constant_result.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/constant_result.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/reshape_squeeze_reshape_relu.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/split_conv_concat.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/split_conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/split_conv_concat.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/split_conv_concat.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/tensor_names.cpp b/src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/tensor_names.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/tensor_names.cpp rename to src/tests/functional/plugin/myriad/shared_tests_instances/subgraph_tests/tensor_names.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/single_layer_tests/gather.cpp b/src/tests/functional/plugin/myriad/single_layer_tests/gather.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/single_layer_tests/gather.cpp rename to src/tests/functional/plugin/myriad/single_layer_tests/gather.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/single_layer_tests/out_shape_of_reshape.cpp b/src/tests/functional/plugin/myriad/single_layer_tests/out_shape_of_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/single_layer_tests/out_shape_of_reshape.cpp rename to src/tests/functional/plugin/myriad/single_layer_tests/out_shape_of_reshape.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/single_layer_tests/static_shape_broadcast.cpp b/src/tests/functional/plugin/myriad/single_layer_tests/static_shape_broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/single_layer_tests/static_shape_broadcast.cpp rename to src/tests/functional/plugin/myriad/single_layer_tests/static_shape_broadcast.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/single_layer_tests/static_shape_nms.cpp b/src/tests/functional/plugin/myriad/single_layer_tests/static_shape_nms.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/single_layer_tests/static_shape_nms.cpp rename to src/tests/functional/plugin/myriad/single_layer_tests/static_shape_nms.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/single_layer_tests/static_shape_nonzero.cpp b/src/tests/functional/plugin/myriad/single_layer_tests/static_shape_nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/single_layer_tests/static_shape_nonzero.cpp rename to src/tests/functional/plugin/myriad/single_layer_tests/static_shape_nonzero.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/concat_split_transpose.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/concat_split_transpose.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/concat_split_transpose.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/concat_split_transpose.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_binary_elementwise.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_binary_elementwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_binary_elementwise.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_binary_elementwise.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_clamp.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_clamp.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_clamp.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_clamp.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_concat.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_concat.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_concat.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_convert.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_convert.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_convert.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_convert.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_base.hpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_base.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_base.hpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_base.hpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_elements.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_elements.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_nd.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_nd.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_nd.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_gather_nd.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_matmul.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_matmul.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_matmul.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_matmul.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_non_max_suppression.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_non_max_suppression.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_non_max_suppression.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_reduce.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_reduce.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_reduce.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_reduce.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_reshape.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_reshape.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_reshape.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_roialign.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_roialign.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_roialign.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_roialign.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_scatter.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_scatter.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_scatter.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_scatter.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_split.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_split.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_split.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_squeeze.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_squeeze.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_squeeze.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_strided_slice.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_strided_slice.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_strided_slice.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_strided_slice.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_tests_common.hpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_tests_common.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_tests_common.hpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_tests_common.hpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_topk.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_topk.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_topk.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_topk.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_unary_elementwise.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_unary_elementwise.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_unary_elementwise.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_unary_elementwise.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_unsqueeze.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_unsqueeze.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_unsqueeze.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_unsqueeze.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_variadic_split.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/dsr_variadic_split.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/dsr_variadic_split.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/dsr_variadic_split.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/gather_gather_elements.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/gather_gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/gather_gather_elements.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/gather_gather_elements.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/lstm_transpose.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/lstm_transpose.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/lstm_transpose.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/lstm_transpose.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/nms_nonzero.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/nms_nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/nms_nonzero.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/nms_nonzero.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/nonzero_broadcast.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/nonzero_broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/nonzero_broadcast.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/nonzero_broadcast.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/nonzero_transpose.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/nonzero_transpose.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/nonzero_transpose.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/nonzero_transpose.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/parameter_result.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/parameter_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/parameter_result.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/parameter_result.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/parameter_shapeof_result.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/parameter_shapeof_result.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/parameter_shapeof_result.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/parameter_shapeof_result.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/topk_k_propagation.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/topk_k_propagation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/topk_k_propagation.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/topk_k_propagation.cpp diff --git a/inference-engine/tests/functional/plugin/myriad/subgraph_tests/unsqueeze_gather.cpp b/src/tests/functional/plugin/myriad/subgraph_tests/unsqueeze_gather.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/myriad/subgraph_tests/unsqueeze_gather.cpp rename to src/tests/functional/plugin/myriad/subgraph_tests/unsqueeze_gather.cpp diff --git a/inference-engine/tests/functional/plugin/shared/CMakeLists.txt b/src/tests/functional/plugin/shared/CMakeLists.txt similarity index 100% rename from inference-engine/tests/functional/plugin/shared/CMakeLists.txt rename to src/tests/functional/plugin/shared/CMakeLists.txt diff --git a/inference-engine/tests/functional/plugin/shared/include/base/behavior_test_utils.hpp b/src/tests/functional/plugin/shared/include/base/behavior_test_utils.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/base/behavior_test_utils.hpp rename to src/tests/functional/plugin/shared/include/base/behavior_test_utils.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/base/import_export_base/import_export_base.hpp b/src/tests/functional/plugin/shared/include/base/import_export_base/import_export_base.hpp similarity index 95% rename from inference-engine/tests/functional/plugin/shared/include/base/import_export_base/import_export_base.hpp rename to src/tests/functional/plugin/shared/include/base/import_export_base/import_export_base.hpp index 8795dced06f..e6ce7a46165 100644 --- a/inference-engine/tests/functional/plugin/shared/include/base/import_export_base/import_export_base.hpp +++ b/src/tests/functional/plugin/shared/include/base/import_export_base/import_export_base.hpp @@ -9,6 +9,7 @@ #include typedef std::tuple< + std::vector, // Input Shape InferenceEngine::Precision, // Network Precision std::string, // Target Device std::map, // Export Configuration diff --git a/inference-engine/tests/functional/plugin/shared/include/base/multi/multi_helpers.hpp b/src/tests/functional/plugin/shared/include/base/multi/multi_helpers.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/base/multi/multi_helpers.hpp rename to src/tests/functional/plugin/shared/include/base/multi/multi_helpers.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/base/ov_behavior_test_utils.hpp b/src/tests/functional/plugin/shared/include/base/ov_behavior_test_utils.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/base/ov_behavior_test_utils.hpp rename to src/tests/functional/plugin/shared/include/base/ov_behavior_test_utils.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/caching/caching_tests.hpp b/src/tests/functional/plugin/shared/include/behavior/caching/caching_tests.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/caching/caching_tests.hpp rename to src/tests/functional/plugin/shared/include/behavior/caching/caching_tests.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/exec_graph_info.hpp b/src/tests/functional/plugin/shared/include/behavior/executable_network/exec_graph_info.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/exec_graph_info.hpp rename to src/tests/functional/plugin/shared/include/behavior/executable_network/exec_graph_info.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/exec_network_base.hpp b/src/tests/functional/plugin/shared/include/behavior/executable_network/exec_network_base.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/exec_network_base.hpp rename to src/tests/functional/plugin/shared/include/behavior/executable_network/exec_network_base.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/get_metric.hpp b/src/tests/functional/plugin/shared/include/behavior/executable_network/get_metric.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/get_metric.hpp rename to src/tests/functional/plugin/shared/include/behavior/executable_network/get_metric.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/locale.hpp b/src/tests/functional/plugin/shared/include/behavior/executable_network/locale.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/executable_network/locale.hpp rename to src/tests/functional/plugin/shared/include/behavior/executable_network/locale.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/callback.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/callback.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/callback.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/callback.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/cancellation.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/cancellation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/cancellation.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/cancellation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/config.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/config.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/config.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/config.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/io_blob.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/io_blob.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/io_blob.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/io_blob.hpp index 94dfc0aaf07..6770563f583 100644 --- a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/io_blob.hpp +++ b/src/tests/functional/plugin/shared/include/behavior/infer_request/io_blob.hpp @@ -346,7 +346,7 @@ protected: }; -TEST_P(InferRequestIOBBlobSetPrecisionTest, CanSetInBlobWithDifferentPrecision) { +TEST_P(InferRequestIOBBlobSetPrecisionTest, CanSetOutBlobWithDifferentPrecision) { SKIP_IF_CURRENT_TEST_IS_DISABLED() // Create InferRequest InferenceEngine::InferRequest req; @@ -362,7 +362,7 @@ TEST_P(InferRequestIOBBlobSetPrecisionTest, CanSetInBlobWithDifferentPrecision) } } -TEST_P(InferRequestIOBBlobSetPrecisionTest, CanSetOutBlobWithDifferentPrecision) { +TEST_P(InferRequestIOBBlobSetPrecisionTest, CanSetInBlobWithDifferentPrecision) { SKIP_IF_CURRENT_TEST_IS_DISABLED() // Create InferRequest InferenceEngine::InferRequest req; diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/memory_states.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/memory_states.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/memory_states.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/memory_states.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/multithreading.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/multithreading.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/multithreading.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/multithreading.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/perf_counters.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/perf_counters.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/perf_counters.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/perf_counters.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/set_blob_by_type.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/set_blob_by_type.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/set_blob_by_type.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/set_blob_by_type.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/wait.hpp b/src/tests/functional/plugin/shared/include/behavior/infer_request/wait.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/infer_request/wait.hpp rename to src/tests/functional/plugin/shared/include/behavior/infer_request/wait.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_graph_info.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_graph_info.hpp similarity index 97% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_graph_info.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_graph_info.hpp index 65aac7c4766..2478213bd7d 100644 --- a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_graph_info.hpp +++ b/src/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_graph_info.hpp @@ -108,11 +108,15 @@ TEST_P(OVExecGraphImportExportTest, importExportedFunction) { importedExecNet.input(0).get_tensor().get_partial_shape()); EXPECT_EQ(function->input(0).get_tensor().get_element_type(), importedExecNet.input(0).get_tensor().get_element_type()); + EXPECT_EQ(function->input(0).get_element_type(), + importedExecNet.input(0).get_tensor().get_element_type()); EXPECT_EQ(function->input(1).get_tensor().get_names(), importedExecNet.input(1).get_tensor().get_names()); EXPECT_EQ(function->input(1).get_tensor().get_partial_shape(), importedExecNet.input(1).get_tensor().get_partial_shape()); EXPECT_EQ(function->input(1).get_tensor().get_element_type(), importedExecNet.input(1).get_tensor().get_element_type()); + EXPECT_EQ(function->input(1).get_element_type(), + importedExecNet.input(1).get_tensor().get_element_type()); EXPECT_EQ(importedExecNet.input(0).get_node(), importedExecNet.input("data1").get_node()); EXPECT_NE(importedExecNet.input(1).get_node(), importedExecNet.input("data1").get_node()); EXPECT_EQ(importedExecNet.input(1).get_node(), importedExecNet.input("data2").get_node()); @@ -125,11 +129,15 @@ TEST_P(OVExecGraphImportExportTest, importExportedFunction) { importedExecNet.output(0).get_tensor().get_partial_shape()); EXPECT_EQ(function->output(0).get_tensor().get_element_type(), importedExecNet.output(0).get_tensor().get_element_type()); + EXPECT_EQ(function->output(0).get_element_type(), + importedExecNet.output(0).get_tensor().get_element_type()); EXPECT_EQ(function->output(1).get_tensor().get_names(), importedExecNet.output(1).get_tensor().get_names()); EXPECT_EQ(function->output(1).get_tensor().get_partial_shape(), importedExecNet.output(1).get_tensor().get_partial_shape()); EXPECT_EQ(function->output(1).get_tensor().get_element_type(), importedExecNet.output(1).get_tensor().get_element_type()); + EXPECT_EQ(function->output(1).get_element_type(), + importedExecNet.output(1).get_tensor().get_element_type()); EXPECT_EQ(importedExecNet.output(0).get_node(), importedExecNet.output("relu").get_node()); EXPECT_NE(importedExecNet.output(1).get_node(), importedExecNet.output("relu").get_node()); EXPECT_EQ(importedExecNet.output(1).get_node(), importedExecNet.output("concat").get_node()); diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_network_base.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_network_base.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_network_base.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_executable_network/exec_network_base.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_executable_network/get_metric.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_executable_network/get_metric.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_executable_network/get_metric.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_executable_network/get_metric.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/callback.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/callback.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/callback.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/callback.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/cancellation.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/cancellation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/cancellation.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/cancellation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/infer_request_dynamic.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/infer_request_dynamic.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/infer_request_dynamic.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/infer_request_dynamic.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/inference_chaining.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/inference_chaining.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/inference_chaining.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/inference_chaining.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/io_tensor.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/io_tensor.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/io_tensor.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/io_tensor.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/multithreading.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/multithreading.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/multithreading.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/multithreading.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/perf_counters.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/perf_counters.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/perf_counters.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/perf_counters.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/wait.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_infer_request/wait.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_infer_request/wait.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_infer_request/wait.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_plugin/core_integration.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_plugin/core_integration.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_plugin/core_integration.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_plugin/core_integration.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_remote.hpp b/src/tests/functional/plugin/shared/include/behavior/ov_remote.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/ov_remote.hpp rename to src/tests/functional/plugin/shared/include/behavior/ov_remote.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/plugin/configuration_tests.hpp b/src/tests/functional/plugin/shared/include/behavior/plugin/configuration_tests.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/plugin/configuration_tests.hpp rename to src/tests/functional/plugin/shared/include/behavior/plugin/configuration_tests.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/plugin/core_integration.hpp b/src/tests/functional/plugin/shared/include/behavior/plugin/core_integration.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/plugin/core_integration.hpp rename to src/tests/functional/plugin/shared/include/behavior/plugin/core_integration.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/plugin/core_threading.hpp b/src/tests/functional/plugin/shared/include/behavior/plugin/core_threading.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/plugin/core_threading.hpp rename to src/tests/functional/plugin/shared/include/behavior/plugin/core_threading.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/plugin/life_time.hpp b/src/tests/functional/plugin/shared/include/behavior/plugin/life_time.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/plugin/life_time.hpp rename to src/tests/functional/plugin/shared/include/behavior/plugin/life_time.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/plugin/version.hpp b/src/tests/functional/plugin/shared/include/behavior/plugin/version.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/plugin/version.hpp rename to src/tests/functional/plugin/shared/include/behavior/plugin/version.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/preprocessing/preprocessing.hpp b/src/tests/functional/plugin/shared/include/behavior/preprocessing/preprocessing.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/preprocessing/preprocessing.hpp rename to src/tests/functional/plugin/shared/include/behavior/preprocessing/preprocessing.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/preprocessing/set_preprocess.hpp b/src/tests/functional/plugin/shared/include/behavior/preprocessing/set_preprocess.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/behavior/preprocessing/set_preprocess.hpp rename to src/tests/functional/plugin/shared/include/behavior/preprocessing/set_preprocess.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/blob_tests/detect_network_batch_test.hpp b/src/tests/functional/plugin/shared/include/blob_tests/detect_network_batch_test.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/blob_tests/detect_network_batch_test.hpp rename to src/tests/functional/plugin/shared/include/blob_tests/detect_network_batch_test.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/blob_tests/dynamic_batch.hpp b/src/tests/functional/plugin/shared/include/blob_tests/dynamic_batch.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/blob_tests/dynamic_batch.hpp rename to src/tests/functional/plugin/shared/include/blob_tests/dynamic_batch.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/blob_tests/set_blob.hpp b/src/tests/functional/plugin/shared/include/blob_tests/set_blob.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/blob_tests/set_blob.hpp rename to src/tests/functional/plugin/shared/include/blob_tests/set_blob.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/add_output.hpp b/src/tests/functional/plugin/shared/include/execution_graph_tests/add_output.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/add_output.hpp rename to src/tests/functional/plugin/shared/include/execution_graph_tests/add_output.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/keep_assign.hpp b/src/tests/functional/plugin/shared/include/execution_graph_tests/keep_assign.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/keep_assign.hpp rename to src/tests/functional/plugin/shared/include/execution_graph_tests/keep_assign.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/nms_transformation_for_last_node.hpp b/src/tests/functional/plugin/shared/include/execution_graph_tests/nms_transformation_for_last_node.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/nms_transformation_for_last_node.hpp rename to src/tests/functional/plugin/shared/include/execution_graph_tests/nms_transformation_for_last_node.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/num_inputs_fusing_bin_conv.hpp b/src/tests/functional/plugin/shared/include/execution_graph_tests/num_inputs_fusing_bin_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/num_inputs_fusing_bin_conv.hpp rename to src/tests/functional/plugin/shared/include/execution_graph_tests/num_inputs_fusing_bin_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/remove_parameter.hpp b/src/tests/functional/plugin/shared/include/execution_graph_tests/remove_parameter.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/remove_parameter.hpp rename to src/tests/functional/plugin/shared/include/execution_graph_tests/remove_parameter.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/runtime_precision.hpp b/src/tests/functional/plugin/shared/include/execution_graph_tests/runtime_precision.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/execution_graph_tests/runtime_precision.hpp rename to src/tests/functional/plugin/shared/include/execution_graph_tests/runtime_precision.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/hetero/synthetic.hpp b/src/tests/functional/plugin/shared/include/hetero/synthetic.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/hetero/synthetic.hpp rename to src/tests/functional/plugin/shared/include/hetero/synthetic.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/import_export_tests/import_nonzero.hpp b/src/tests/functional/plugin/shared/include/import_export_tests/import_nonzero.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/import_export_tests/import_nonzero.hpp rename to src/tests/functional/plugin/shared/include/import_export_tests/import_nonzero.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/import_export_tests/import_reshape_permute_conv.hpp b/src/tests/functional/plugin/shared/include/import_export_tests/import_reshape_permute_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/import_export_tests/import_reshape_permute_conv.hpp rename to src/tests/functional/plugin/shared/include/import_export_tests/import_reshape_permute_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/add_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/add_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/add_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/add_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/clamp_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/clamp_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/clamp_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/clamp_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/concat_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/concat_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_child_and_output.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_child_and_output.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_child_and_output.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_child_and_output.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_different_precision_on_children.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_different_precision_on_children.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_different_precision_on_children.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_different_precision_on_children.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_intermediate_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_intermediate_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_intermediate_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_intermediate_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_neighbors_graph_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_neighbors_graph_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_neighbors_graph_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_neighbors_graph_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_split_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_split_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_split_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/concat_with_split_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_backprop_data_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_backprop_data_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_backprop_data_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_backprop_data_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_qdq_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_qdq_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_qdq_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_qdq_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_with_incorrect_weights.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_with_incorrect_weights.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/convolution_with_incorrect_weights.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/convolution_with_incorrect_weights.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/depth_to_space_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/depth_to_space_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/depth_to_space_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/depth_to_space_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_avg_pool_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_avg_pool_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_avg_pool_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_avg_pool_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_max_pool_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_max_pool_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_max_pool_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_max_pool_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_precision_selection_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_precision_selection_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_precision_selection_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_precision_selection_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fully_connected_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fully_connected_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fully_connected_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fully_connected_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_convert_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_convert_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_convert_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_convert_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_fake_quantize_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/gemm_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/gemm_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/gemm_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/gemm_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/group_convolution_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/group_convolution_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/group_convolution_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/group_convolution_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/groupconvolution_qdq_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/groupconvolution_qdq_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/groupconvolution_qdq_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/groupconvolution_qdq_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/interpolate_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/interpolate_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/interpolate_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/interpolate_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_constant_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_constant_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_constant_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_constant_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/move_fake_quantize_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/move_fake_quantize_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/move_fake_quantize_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/move_fake_quantize_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/multiply_to_group_convolution_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/multiply_to_group_convolution_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/multiply_to_group_convolution_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/multiply_to_group_convolution_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/multiply_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/multiply_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/multiply_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/multiply_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/multiply_with_one_parent_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/multiply_with_one_parent_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/multiply_with_one_parent_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/multiply_with_one_parent_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mvn_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/mvn_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/mvn_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/mvn_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/normalize_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/normalize_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/normalize_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/normalize_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/pad_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/pad_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/pad_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/pad_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/prelu_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/prelu_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/prelu_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/prelu_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/pull_reshape_through_dequantization_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/pull_reshape_through_dequantization_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/pull_reshape_through_dequantization_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/pull_reshape_through_dequantization_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_max_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_max_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_max_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_max_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_mean_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_mean_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_mean_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_mean_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_min_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_min_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_min_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_min_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_sum_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_sum_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reduce_sum_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/reduce_sum_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/relu_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/relu_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/relu_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/relu_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reshape_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/reshape_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/reshape_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/reshape_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/shuffle_channels_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/shuffle_channels_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/shuffle_channels_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/shuffle_channels_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/split_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/split_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/split_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/split_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/squeeze_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/squeeze_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/squeeze_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/squeeze_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/strided_slice_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/strided_slice_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/strided_slice_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/strided_slice_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/subtract_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/subtract_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/subtract_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/subtract_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/transpose_after_matmul_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/transpose_after_matmul_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/transpose_after_matmul_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/transpose_after_matmul_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/transpose_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/transpose_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/transpose_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/transpose_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/unsqueeze_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/unsqueeze_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/unsqueeze_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/unsqueeze_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/variadic_split_transformation.hpp b/src/tests/functional/plugin/shared/include/low_precision_transformations/variadic_split_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/low_precision_transformations/variadic_split_transformation.hpp rename to src/tests/functional/plugin/shared/include/low_precision_transformations/variadic_split_transformation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/multi/multi_remote_blob_tests.hpp b/src/tests/functional/plugin/shared/include/multi/multi_remote_blob_tests.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/multi/multi_remote_blob_tests.hpp rename to src/tests/functional/plugin/shared/include/multi/multi_remote_blob_tests.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/ngraph_conversion_tests/conv_bias_fusion.hpp b/src/tests/functional/plugin/shared/include/ngraph_conversion_tests/conv_bias_fusion.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/ngraph_conversion_tests/conv_bias_fusion.hpp rename to src/tests/functional/plugin/shared/include/ngraph_conversion_tests/conv_bias_fusion.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/ngraph_conversion_tests/plugin_specific_ngraph_conversion.hpp b/src/tests/functional/plugin/shared/include/ngraph_conversion_tests/plugin_specific_ngraph_conversion.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/ngraph_conversion_tests/plugin_specific_ngraph_conversion.hpp rename to src/tests/functional/plugin/shared/include/ngraph_conversion_tests/plugin_specific_ngraph_conversion.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/onnx/quantized_models_tests.hpp b/src/tests/functional/plugin/shared/include/onnx/quantized_models_tests.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/onnx/quantized_models_tests.hpp rename to src/tests/functional/plugin/shared/include/onnx/quantized_models_tests.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/op_impl_check/op_impl_check.hpp b/src/tests/functional/plugin/shared/include/op_impl_check/op_impl_check.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/op_impl_check/op_impl_check.hpp rename to src/tests/functional/plugin/shared/include/op_impl_check/op_impl_check.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/op_impl_check/single_op_graph.hpp b/src/tests/functional/plugin/shared/include/op_impl_check/single_op_graph.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/op_impl_check/single_op_graph.hpp rename to src/tests/functional/plugin/shared/include/op_impl_check/single_op_graph.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/read_ir/read_ir.hpp b/src/tests/functional/plugin/shared/include/read_ir/read_ir.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/read_ir/read_ir.hpp rename to src/tests/functional/plugin/shared/include/read_ir/read_ir.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/activation.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/activation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/activation.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/activation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/adaptive_pooling.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/adaptive_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/adaptive_pooling.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/adaptive_pooling.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/batch_norm.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/batch_norm.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/batch_norm.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/batch_norm.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/batch_to_space.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/batch_to_space.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/batch_to_space.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/batch_to_space.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/binary_convolution.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/binary_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/binary_convolution.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/binary_convolution.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/broadcast.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/broadcast.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/broadcast.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/broadcast.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/bucketize.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/bucketize.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/bucketize.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/bucketize.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/clamp.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/clamp.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/clamp.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/clamp.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/comparison.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/comparison.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/comparison.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/comparison.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/concat.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/concat.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/constant.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/constant.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/constant.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/constant.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/conversion.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/conversion.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/conversion.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/conversion.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convert_color_i420.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/convert_color_i420.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convert_color_i420.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/convert_color_i420.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convert_color_nv12.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/convert_color_nv12.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convert_color_nv12.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/convert_color_nv12.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convolution.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/convolution.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convolution.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/convolution.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop_data.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop_data.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder_seq_len.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder_seq_len.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder_seq_len.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/ctc_greedy_decoder_seq_len.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/ctc_loss.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/ctc_loss.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/ctc_loss.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/ctc_loss.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/cum_sum.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/cum_sum.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/cum_sum.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/cum_sum.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/deformable_convolution.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/deformable_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/deformable_convolution.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/deformable_convolution.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/deformable_psroi_pooling.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/deformable_psroi_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/deformable_psroi_pooling.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/deformable_psroi_pooling.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/depth_to_space.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/depth_to_space.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/depth_to_space.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/depth_to_space.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/detection_output.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/detection_output.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/detection_output.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/detection_output.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/dft.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/dft.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/dft.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/dft.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/eltwise.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/eltwise.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/eltwise.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_offsets_sum.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_offsets_sum.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_offsets_sum.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_offsets_sum.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_packed_sum.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_packed_sum.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_packed_sum.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/embedding_bag_packed_sum.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/embedding_segments_sum.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/embedding_segments_sum.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/embedding_segments_sum.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/embedding_segments_sum.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_detection_output.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_detection_output.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_detection_output.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_detection_output.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_generate_proposals_single_image.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_generate_proposals_single_image.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_generate_proposals_single_image.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_generate_proposals_single_image.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_prior_grid_generator.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_prior_grid_generator.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_prior_grid_generator.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_prior_grid_generator.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_roifeatureextractor.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_roifeatureextractor.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_roifeatureextractor.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_roifeatureextractor.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_topkrois.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_topkrois.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_topkrois.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/experimental_detectron_topkrois.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/extract_image_patches.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/extract_image_patches.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/extract_image_patches.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/extract_image_patches.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/fake_quantize.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/fake_quantize.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/fake_quantize.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/fake_quantize.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/gather.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/gather.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather_elements.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/gather_elements.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather_elements.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/gather_elements.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather_nd.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/gather_nd.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather_nd.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/gather_nd.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather_tree.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/gather_tree.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gather_tree.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/gather_tree.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/grn.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/grn.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/grn.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/grn.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/group_convolution.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/group_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/group_convolution.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/group_convolution.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/group_convolution_backprop_data.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/group_convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/group_convolution_backprop_data.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/group_convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gru_cell.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/gru_cell.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gru_cell.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/gru_cell.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gru_sequence.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/gru_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/gru_sequence.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/gru_sequence.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/interpolate.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/interpolate.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/interpolate.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/interpolate.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/invalid_cases/proposal.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/invalid_cases/proposal.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/invalid_cases/proposal.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/invalid_cases/proposal.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/log_softmax.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/log_softmax.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/log_softmax.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/log_softmax.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/logical.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/logical.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/logical.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/logical.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/loop.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/loop.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/loop.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/loop.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/low_precision.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/low_precision.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/low_precision.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/low_precision.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/lrn.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/lrn.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/lrn.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/lrn.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/lstm_cell.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/lstm_cell.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/lstm_cell.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/lstm_cell.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/lstm_sequence.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/lstm_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/lstm_sequence.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/lstm_sequence.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/mat_mul.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/mat_mul.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/mat_mul.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/mat_mul.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/matrix_nms.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/matrix_nms.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/matrix_nms.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/matrix_nms.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/memory.h b/src/tests/functional/plugin/shared/include/single_layer_tests/memory.h similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/memory.h rename to src/tests/functional/plugin/shared/include/single_layer_tests/memory.h diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/minimum_maximum.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/minimum_maximum.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/minimum_maximum.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/minimum_maximum.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/multiclass_nms.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/multiclass_nms.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/multiclass_nms.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/multiclass_nms.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/mvn.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/mvn.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/mvn.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/mvn.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/non_max_suppression.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/non_max_suppression.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/non_max_suppression.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/non_max_suppression.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/nonzero.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/nonzero.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/nonzero.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/nonzero.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/normalize_l2.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/normalize_l2.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/normalize_l2.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/normalize_l2.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/one_hot.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/one_hot.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/one_hot.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/one_hot.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/pad.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/pad.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/pad.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/pad.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/pooling.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/pooling.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/pooling.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/pooling.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/power.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/power.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/power.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/power.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/prior_box.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/prior_box.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/prior_box.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/prior_box.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/prior_box_clustered.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/prior_box_clustered.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/prior_box_clustered.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/prior_box_clustered.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/proposal.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/proposal.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/proposal.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/proposal.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/psroi_pooling.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/psroi_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/psroi_pooling.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/psroi_pooling.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/range.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/range.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/range.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/range.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reduce_ops.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/reduce_ops.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reduce_ops.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/reduce_ops.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/region_yolo.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/region_yolo.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/region_yolo.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/region_yolo.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reorg_yolo.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/reorg_yolo.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reorg_yolo.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/reorg_yolo.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reshape.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/reshape.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reshape.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/reshape.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/result.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/result.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/result.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/result.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reverse_sequence.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/reverse_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/reverse_sequence.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/reverse_sequence.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/rnn_cell.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/rnn_cell.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/rnn_cell.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/rnn_cell.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/rnn_sequence.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/rnn_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/rnn_sequence.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/rnn_sequence.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/roi_align.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/roi_align.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/roi_align.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/roi_align.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/roi_pooling.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/roi_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/roi_pooling.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/roi_pooling.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/roll.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/roll.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/roll.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/roll.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/scatter_ND_update.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/scatter_ND_update.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/scatter_ND_update.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/scatter_ND_update.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/scatter_elements_update.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/scatter_elements_update.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/scatter_elements_update.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/scatter_elements_update.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/scatter_update.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/scatter_update.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/scatter_update.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/scatter_update.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/select.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/select.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/select.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/select.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/shape_of.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/shape_of.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/shape_of.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/shape_of.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/shuffle_channels.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/shuffle_channels.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/shuffle_channels.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/shuffle_channels.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/slice.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/slice.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/slice.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/slice.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/softmax.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/softmax.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/softmax.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/softmax.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/space_to_batch.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/space_to_batch.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/space_to_batch.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/space_to_batch.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/space_to_depth.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/space_to_depth.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/space_to_depth.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/space_to_depth.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/split.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/split.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/split.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/split.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/squeeze_unsqueeze.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/squeeze_unsqueeze.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/squeeze_unsqueeze.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/squeeze_unsqueeze.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/strided_slice.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/strided_slice.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/strided_slice.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/strided_slice.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/tensor_iterator.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/tensor_iterator.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/tensor_iterator.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/tensor_iterator.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/tile.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/tile.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/tile.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/tile.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/topk.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/topk.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/topk.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/topk.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/transpose.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/transpose.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/transpose.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/transpose.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/single_layer_tests/variadic_split.hpp b/src/tests/functional/plugin/shared/include/single_layer_tests/variadic_split.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/single_layer_tests/variadic_split.hpp rename to src/tests/functional/plugin/shared/include/single_layer_tests/variadic_split.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/stress_tests/stress_tests.hpp b/src/tests/functional/plugin/shared/include/stress_tests/stress_tests.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/stress_tests/stress_tests.hpp rename to src/tests/functional/plugin/shared/include/stress_tests/stress_tests.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/activation_concats_eltwise.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/activation_concats_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/activation_concats_eltwise.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/activation_concats_eltwise.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/activation_fq.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/activation_fq.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/activation_fq.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/activation_fq.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/basic_lstm.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/basic_lstm.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/basic_lstm.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/basic_lstm.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/broadcast_power.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/broadcast_power.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/broadcast_power.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/broadcast_power.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/cascade_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/cascade_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/cascade_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/cascade_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/clamp_fq.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/clamp_fq.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/clamp_fq.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/clamp_fq.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/codegen_add.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/codegen_add.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/codegen_add.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/codegen_add.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/codegen_bert.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/codegen_bert.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/codegen_bert.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/codegen_bert.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/codegen_gelu.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/codegen_gelu.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/codegen_gelu.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/codegen_gelu.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_conv.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/concat_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_conv.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/concat_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_multi_input.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/concat_multi_input.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_multi_input.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/concat_multi_input.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization_during_memory_requantization.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization_during_memory_requantization.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization_during_memory_requantization.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/concat_quantization_during_memory_requantization.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/connect_split_concat_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/connect_split_concat_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/connect_split_concat_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/connect_split_concat_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/const_conv_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/const_conv_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/const_conv_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/const_conv_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/const_strided_slice_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/const_strided_slice_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/const_strided_slice_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/const_strided_slice_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/constant_result.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/constant_result.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/constant_result.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/constant_result.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_eltwise_fusion.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/conv_eltwise_fusion.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_eltwise_fusion.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/conv_eltwise_fusion.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_eltwise.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_eltwise.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_eltwise.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_relu.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_relu.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_relu.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/conv_fq_relu.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_strides_opt.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/conv_strides_opt.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/conv_strides_opt.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/conv_strides_opt.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/convert_pad_to_group_conv.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/convert_pad_to_group_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/convert_pad_to_group_conv.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/convert_pad_to_group_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/convolution_relu_sequence.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/convolution_relu_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/convolution_relu_sequence.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/convolution_relu_sequence.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/copy_before_squeeze.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/copy_before_squeeze.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/copy_before_squeeze.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/copy_before_squeeze.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/crop4d.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/crop4d.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/crop4d.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/crop4d.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/delayed_copy_layer.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/delayed_copy_layer.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/delayed_copy_layer.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/delayed_copy_layer.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/eltwise_conv_eltwise.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/eltwise_conv_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/eltwise_conv_eltwise.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/eltwise_conv_eltwise.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/eltwise_reshape_activation.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/eltwise_reshape_activation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/eltwise_reshape_activation.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/eltwise_reshape_activation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/fc_conv_fc.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/fc_conv_fc.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/fc_conv_fc.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/fc_conv_fc.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/first_connect_input_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/first_connect_input_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/first_connect_input_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/first_connect_input_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/fq_conv_fq_affine.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/fq_conv_fq_affine.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/fq_conv_fq_affine.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/fq_conv_fq_affine.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/fq_with_mixed_levels.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/fq_with_mixed_levels.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/fq_with_mixed_levels.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/fq_with_mixed_levels.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/get_output_before_activation.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/get_output_before_activation.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/get_output_before_activation.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/get_output_before_activation.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/handling_orientation_conv.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/handling_orientation_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/handling_orientation_conv.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/handling_orientation_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/input_conv.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/input_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/input_conv.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/input_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/input_split_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/input_split_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/input_split_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/input_split_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/matmul_act_add.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/matmul_act_add.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/matmul_act_add.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/matmul_act_add.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/matmul_squeeze_add.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/matmul_squeeze_add.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/matmul_squeeze_add.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/matmul_squeeze_add.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/memory_LSTMCell.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/memory_LSTMCell.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/memory_LSTMCell.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/memory_LSTMCell.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/memory_eltwise_reshape_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/memory_eltwise_reshape_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/memory_eltwise_reshape_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/memory_eltwise_reshape_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/memory_fq_concat_prelu.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/memory_fq_concat_prelu.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/memory_fq_concat_prelu.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/memory_fq_concat_prelu.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/mul_conv_fusion.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/mul_conv_fusion.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/mul_conv_fusion.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/mul_conv_fusion.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multi_input_scale.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/multi_input_scale.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multi_input_scale.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/multi_input_scale.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multioutput_eltwise_squeeze_eltwise.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/multioutput_eltwise_squeeze_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multioutput_eltwise_squeeze_eltwise.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/multioutput_eltwise_squeeze_eltwise.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_LSTMCell.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/multiple_LSTMCell.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_LSTMCell.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/multiple_LSTMCell.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/multiple_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/multiple_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_connect_split_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/multiple_connect_split_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_connect_split_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/multiple_connect_split_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_input_fq.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/multiple_input_fq.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiple_input_fq.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/multiple_input_fq.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiply_add.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/multiply_add.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/multiply_add.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/multiply_add.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/mvn_multiply_add.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/mvn_multiply_add.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/mvn_multiply_add.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/mvn_multiply_add.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/negative_memory_layer_offset.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/negative_memory_layer_offset.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/negative_memory_layer_offset.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/negative_memory_layer_offset.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/parameter_result.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/parameter_result.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/parameter_result.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/parameter_result.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/parameter_shapeof_result.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/parameter_shapeof_result.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/parameter_shapeof_result.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/parameter_shapeof_result.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/perm_conv_perm_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/perm_conv_perm_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/perm_conv_perm_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/perm_conv_perm_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_convolution_backprop_data.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/quantized_convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_convolution_backprop_data.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/quantized_convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution_backprop_data.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution_backprop_data.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/quantized_group_convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_mat_mul.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/quantized_mat_mul.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/quantized_mat_mul.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/quantized_mat_mul.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/range_add.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/range_add.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/range_add.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/range_add.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reduce_eltwise.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/reduce_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reduce_eltwise.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/reduce_eltwise.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/relu_shape_of.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/relu_shape_of.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/relu_shape_of.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/relu_shape_of.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/relu_split_reshape.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/relu_split_reshape.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/relu_split_reshape.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/relu_split_reshape.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_conv_permute_reshape_act.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_conv_permute_reshape_act.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_conv_permute_reshape_act.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_conv_permute_reshape_act.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_reshape.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_reshape.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_reshape.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/reshape_permute_reshape.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reshape_squeeze_reshape_relu.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/reshape_squeeze_reshape_relu.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/reshape_squeeze_reshape_relu.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/reshape_squeeze_reshape_relu.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/scaleshift.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/scaleshift.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/scaleshift.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/scaleshift.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/scaleshift_conv_scaleshift.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/scaleshift_conv_scaleshift.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/scaleshift_conv_scaleshift.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/scaleshift_conv_scaleshift.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/softsign.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/softsign.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/softsign.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/softsign.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_concat_memory.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/split_concat_memory.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_concat_memory.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/split_concat_memory.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_concat_multi_inputs.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/split_concat_multi_inputs.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_concat_multi_inputs.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/split_concat_multi_inputs.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_conv.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/split_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_conv.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/split_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_conv_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/split_conv_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_conv_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/split_conv_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_relu.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/split_relu.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_relu.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/split_relu.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_trivial_permute_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/split_trivial_permute_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/split_trivial_permute_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/split_trivial_permute_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/stridedslice_conv.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/stridedslice_conv.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/stridedslice_conv.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/stridedslice_conv.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/tensor_names.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/tensor_names.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/tensor_names.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/tensor_names.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/transpose_add.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/transpose_add.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/transpose_add.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/transpose_add.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/transpose_conv_transpose_squeeze.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/transpose_conv_transpose_squeeze.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/transpose_conv_transpose_squeeze.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/transpose_conv_transpose_squeeze.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/trivial_concat.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/trivial_concat.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/trivial_concat.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/trivial_concat.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/two_fake_quantize_to_fullyconnected.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/two_fake_quantize_to_fullyconnected.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/two_fake_quantize_to_fullyconnected.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/two_fake_quantize_to_fullyconnected.hpp diff --git a/inference-engine/tests/functional/plugin/shared/include/subgraph_tests/variadic_split_pad.hpp b/src/tests/functional/plugin/shared/include/subgraph_tests/variadic_split_pad.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/include/subgraph_tests/variadic_split_pad.hpp rename to src/tests/functional/plugin/shared/include/subgraph_tests/variadic_split_pad.hpp diff --git a/inference-engine/tests/functional/plugin/shared/models/convolution_fq.prototxt b/src/tests/functional/plugin/shared/models/convolution_fq.prototxt similarity index 100% rename from inference-engine/tests/functional/plugin/shared/models/convolution_fq.prototxt rename to src/tests/functional/plugin/shared/models/convolution_fq.prototxt diff --git a/inference-engine/tests/functional/plugin/shared/models/convolution_qdq.prototxt b/src/tests/functional/plugin/shared/models/convolution_qdq.prototxt similarity index 100% rename from inference-engine/tests/functional/plugin/shared/models/convolution_qdq.prototxt rename to src/tests/functional/plugin/shared/models/convolution_qdq.prototxt diff --git a/inference-engine/tests/functional/plugin/shared/models/custom_abs_op.prototxt b/src/tests/functional/plugin/shared/models/custom_abs_op.prototxt similarity index 100% rename from inference-engine/tests/functional/plugin/shared/models/custom_abs_op.prototxt rename to src/tests/functional/plugin/shared/models/custom_abs_op.prototxt diff --git a/inference-engine/tests/functional/plugin/shared/models/custom_template_op.prototxt b/src/tests/functional/plugin/shared/models/custom_template_op.prototxt similarity index 100% rename from inference-engine/tests/functional/plugin/shared/models/custom_template_op.prototxt rename to src/tests/functional/plugin/shared/models/custom_template_op.prototxt diff --git a/inference-engine/tests/functional/plugin/shared/models/max_pool_fq.prototxt b/src/tests/functional/plugin/shared/models/max_pool_fq.prototxt similarity index 100% rename from inference-engine/tests/functional/plugin/shared/models/max_pool_fq.prototxt rename to src/tests/functional/plugin/shared/models/max_pool_fq.prototxt diff --git a/inference-engine/tests/functional/plugin/shared/models/max_pool_qdq.prototxt b/src/tests/functional/plugin/shared/models/max_pool_qdq.prototxt similarity index 100% rename from inference-engine/tests/functional/plugin/shared/models/max_pool_qdq.prototxt rename to src/tests/functional/plugin/shared/models/max_pool_qdq.prototxt diff --git a/inference-engine/tests/functional/plugin/shared/src/base/import_export_base/import_export_base.cpp b/src/tests/functional/plugin/shared/src/base/import_export_base/import_export_base.cpp similarity index 94% rename from inference-engine/tests/functional/plugin/shared/src/base/import_export_base/import_export_base.cpp rename to src/tests/functional/plugin/shared/src/base/import_export_base/import_export_base.cpp index 3f7e6e0f149..be782eb6687 100644 --- a/inference-engine/tests/functional/plugin/shared/src/base/import_export_base/import_export_base.cpp +++ b/src/tests/functional/plugin/shared/src/base/import_export_base/import_export_base.cpp @@ -9,14 +9,16 @@ namespace FuncTestUtils { std::string ImportNetworkTestBase::getTestCaseName(testing::TestParamInfo obj) { + std::vector inputShape; InferenceEngine::Precision netPrecision; std::string targetDevice; std::map exportConfiguration; std::map importConfiguration; std::string appHeader; - std::tie(netPrecision, targetDevice, exportConfiguration, importConfiguration, appHeader) = obj.param; + std::tie(inputShape, netPrecision, targetDevice, exportConfiguration, importConfiguration, appHeader) = obj.param; std::ostringstream result; + result << "IS=" << CommonTestUtils::vec2str(inputShape) << "_"; result << "netPRC=" << netPrecision.name() << "_"; result << "targetDevice=" << targetDevice << "_"; for (auto const& configItem : exportConfiguration) { diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/caching/caching_tests.cpp b/src/tests/functional/plugin/shared/src/behavior/caching/caching_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/caching/caching_tests.cpp rename to src/tests/functional/plugin/shared/src/behavior/caching/caching_tests.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/executable_network/exec_graph_info.cpp b/src/tests/functional/plugin/shared/src/behavior/executable_network/exec_graph_info.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/executable_network/exec_graph_info.cpp rename to src/tests/functional/plugin/shared/src/behavior/executable_network/exec_graph_info.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/executable_network/locale.cpp b/src/tests/functional/plugin/shared/src/behavior/executable_network/locale.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/executable_network/locale.cpp rename to src/tests/functional/plugin/shared/src/behavior/executable_network/locale.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/infer_request/memory_states.cpp b/src/tests/functional/plugin/shared/src/behavior/infer_request/memory_states.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/infer_request/memory_states.cpp rename to src/tests/functional/plugin/shared/src/behavior/infer_request/memory_states.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/callback.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/callback.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/callback.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/callback.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/cancellation.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/cancellation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/cancellation.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/cancellation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/infer_request_dynamic.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/infer_request_dynamic.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/infer_request_dynamic.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/infer_request_dynamic.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/inference_chaining.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/inference_chaining.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/inference_chaining.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/inference_chaining.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/io_tensor.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/io_tensor.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/io_tensor.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/io_tensor.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/multithreading.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/multithreading.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/multithreading.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/multithreading.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/perf_counters.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/perf_counters.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/perf_counters.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/perf_counters.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/wait.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_infer_request/wait.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_infer_request/wait.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_infer_request/wait.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/ov_remote.cpp b/src/tests/functional/plugin/shared/src/behavior/ov_remote.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/ov_remote.cpp rename to src/tests/functional/plugin/shared/src/behavior/ov_remote.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/plugin/configuration_tests.cpp b/src/tests/functional/plugin/shared/src/behavior/plugin/configuration_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/plugin/configuration_tests.cpp rename to src/tests/functional/plugin/shared/src/behavior/plugin/configuration_tests.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/behavior/plugin/life_time.cpp b/src/tests/functional/plugin/shared/src/behavior/plugin/life_time.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/behavior/plugin/life_time.cpp rename to src/tests/functional/plugin/shared/src/behavior/plugin/life_time.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/blob_tests/detect_network_batch_test.cpp b/src/tests/functional/plugin/shared/src/blob_tests/detect_network_batch_test.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/blob_tests/detect_network_batch_test.cpp rename to src/tests/functional/plugin/shared/src/blob_tests/detect_network_batch_test.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/blob_tests/dynamic_batch.cpp b/src/tests/functional/plugin/shared/src/blob_tests/dynamic_batch.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/blob_tests/dynamic_batch.cpp rename to src/tests/functional/plugin/shared/src/blob_tests/dynamic_batch.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/blob_tests/set_blob.cpp b/src/tests/functional/plugin/shared/src/blob_tests/set_blob.cpp similarity index 89% rename from inference-engine/tests/functional/plugin/shared/src/blob_tests/set_blob.cpp rename to src/tests/functional/plugin/shared/src/blob_tests/set_blob.cpp index 073b78c66c5..ad8e0555683 100644 --- a/inference-engine/tests/functional/plugin/shared/src/blob_tests/set_blob.cpp +++ b/src/tests/functional/plugin/shared/src/blob_tests/set_blob.cpp @@ -43,15 +43,19 @@ std::string SetBlobTest::getTestCaseName(testing::TestParamInfo o inline void fillBlob(Blob::Ptr &blob) { switch (blob->getTensorDesc().getPrecision()) { #define CASE(X) case X: CommonTestUtils::fill_data_random(blob); break; - CASE(InferenceEngine::Precision::FP32) - CASE(InferenceEngine::Precision::U8) - CASE(InferenceEngine::Precision::U16) - CASE(InferenceEngine::Precision::I8) - CASE(InferenceEngine::Precision::I16) - CASE(InferenceEngine::Precision::I64) - CASE(InferenceEngine::Precision::U64) - CASE(InferenceEngine::Precision::I32) - CASE(InferenceEngine::Precision::BOOL) + CASE(Precision::U8) + CASE(Precision::I8) + CASE(Precision::U16) + CASE(Precision::I16) + CASE(Precision::U32) + CASE(Precision::I32) + CASE(Precision::U64) + CASE(Precision::I64) + CASE(Precision::BF16) + CASE(Precision::FP16) + CASE(Precision::FP32) + CASE(Precision::FP64) + CASE(Precision::BOOL) #undef CASE default: IE_THROW() << "Can't fill blob with precision: " << blob->getTensorDesc().getPrecision(); diff --git a/inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/add_output.cpp b/src/tests/functional/plugin/shared/src/execution_graph_tests/add_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/add_output.cpp rename to src/tests/functional/plugin/shared/src/execution_graph_tests/add_output.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/keep_assign.cpp b/src/tests/functional/plugin/shared/src/execution_graph_tests/keep_assign.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/keep_assign.cpp rename to src/tests/functional/plugin/shared/src/execution_graph_tests/keep_assign.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/nms_transformation_for_last_node.cpp b/src/tests/functional/plugin/shared/src/execution_graph_tests/nms_transformation_for_last_node.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/nms_transformation_for_last_node.cpp rename to src/tests/functional/plugin/shared/src/execution_graph_tests/nms_transformation_for_last_node.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/num_inputs_fusing_bin_conv.cpp b/src/tests/functional/plugin/shared/src/execution_graph_tests/num_inputs_fusing_bin_conv.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/num_inputs_fusing_bin_conv.cpp rename to src/tests/functional/plugin/shared/src/execution_graph_tests/num_inputs_fusing_bin_conv.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/remove_parameter.cpp b/src/tests/functional/plugin/shared/src/execution_graph_tests/remove_parameter.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/remove_parameter.cpp rename to src/tests/functional/plugin/shared/src/execution_graph_tests/remove_parameter.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/runtime_precision.cpp b/src/tests/functional/plugin/shared/src/execution_graph_tests/runtime_precision.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/execution_graph_tests/runtime_precision.cpp rename to src/tests/functional/plugin/shared/src/execution_graph_tests/runtime_precision.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/hetero/synthetic.cpp b/src/tests/functional/plugin/shared/src/hetero/synthetic.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/hetero/synthetic.cpp rename to src/tests/functional/plugin/shared/src/hetero/synthetic.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/import_export_tests/import_nonzero.cpp b/src/tests/functional/plugin/shared/src/import_export_tests/import_nonzero.cpp similarity index 79% rename from inference-engine/tests/functional/plugin/shared/src/import_export_tests/import_nonzero.cpp rename to src/tests/functional/plugin/shared/src/import_export_tests/import_nonzero.cpp index 44ed3eff75c..64d3ad1192f 100644 --- a/inference-engine/tests/functional/plugin/shared/src/import_export_tests/import_nonzero.cpp +++ b/src/tests/functional/plugin/shared/src/import_export_tests/import_nonzero.cpp @@ -10,10 +10,11 @@ namespace LayerTestsDefinitions { void ImportNonZero::SetUp() { InferenceEngine::Precision netPrecision; - std::tie(netPrecision, targetDevice, exportConfiguration, importConfiguration, applicationHeader) = this->GetParam(); + ngraph::Shape inputShape; + std::tie(inputShape, netPrecision, targetDevice, exportConfiguration, importConfiguration, applicationHeader) = this->GetParam(); const auto ngPrc = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision); - const auto parameter = std::make_shared(ngPrc, ngraph::Shape{1000}); + const auto parameter = std::make_shared(ngPrc, inputShape); const auto nonZero = std::make_shared(parameter); function = std::make_shared(nonZero->outputs(), ngraph::ParameterVector{parameter}, "ExportImportNetwork"); diff --git a/inference-engine/tests/functional/plugin/shared/src/import_export_tests/import_reshape_permute_conv.cpp b/src/tests/functional/plugin/shared/src/import_export_tests/import_reshape_permute_conv.cpp similarity index 88% rename from inference-engine/tests/functional/plugin/shared/src/import_export_tests/import_reshape_permute_conv.cpp rename to src/tests/functional/plugin/shared/src/import_export_tests/import_reshape_permute_conv.cpp index 5a6cb6b6ba6..664aa444854 100644 --- a/inference-engine/tests/functional/plugin/shared/src/import_export_tests/import_reshape_permute_conv.cpp +++ b/src/tests/functional/plugin/shared/src/import_export_tests/import_reshape_permute_conv.cpp @@ -9,11 +9,12 @@ namespace LayerTestsDefinitions { void ImportReshapePermuteConv::SetUp() { + std::vector inputShape; InferenceEngine::Precision netPrecision; - std::tie(netPrecision, targetDevice, exportConfiguration, importConfiguration, applicationHeader) = this->GetParam(); + std::tie(inputShape, netPrecision, targetDevice, exportConfiguration, importConfiguration, applicationHeader) = this->GetParam(); auto ngPrc = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision); - auto params = ngraph::builder::makeParams(ngPrc, { {1, 336} }); + auto params = ngraph::builder::makeParams(ngPrc, { inputShape }); std::vector outFormShapes1 = { 1, 1, 168, 2 }; auto pattern1 = std::make_shared(ngraph::element::Type_t::i64, ngraph::Shape{ 4 }, outFormShapes1); diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/add_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/add_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/add_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/add_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/clamp_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/clamp_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/clamp_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/clamp_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/concat_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/concat_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_child_and_output.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_child_and_output.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_child_and_output.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_child_and_output.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_different_precision_on_children.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_different_precision_on_children.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_different_precision_on_children.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_different_precision_on_children.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_intermediate_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_intermediate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_intermediate_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_intermediate_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_neighbors_graph_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_split_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_split_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/concat_with_split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_backprop_data_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_backprop_data_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_backprop_data_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_backprop_data_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_qdq_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_qdq_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_qdq_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_qdq_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_with_incorrect_weights.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_with_incorrect_weights.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/convolution_with_incorrect_weights.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/convolution_with_incorrect_weights.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/depth_to_space_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/depth_to_space_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/depth_to_space_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/depth_to_space_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_avg_pool_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_max_pool_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_and_two_output_branches_with_convolution.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_precision_selection_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fake_quantize_with_dq_not_optimal_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fully_connected_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fully_connected_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fully_connected_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fully_connected_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_convert_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_convert_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_convert_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_convert_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_and_scale_shift_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_multiply_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/fuse_subtract_to_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/gemm_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/gemm_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/gemm_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/gemm_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/group_convolution_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/group_convolution_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/groupconvolution_qdq_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/groupconvolution_qdq_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/groupconvolution_qdq_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/groupconvolution_qdq_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/interpolate_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/interpolate_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/interpolate_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/interpolate_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_constant_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_constant_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_constant_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_constant_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/mat_mul_with_optimized_constant_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/move_fake_quantize_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/move_fake_quantize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/move_fake_quantize_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/move_fake_quantize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/multiply_to_group_convolution_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/multiply_to_group_convolution_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/multiply_to_group_convolution_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/multiply_to_group_convolution_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/multiply_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/multiply_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/multiply_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/multiply_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/multiply_with_one_parent_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/multiply_with_one_parent_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/multiply_with_one_parent_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/multiply_with_one_parent_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mvn_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/mvn_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/mvn_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/mvn_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/normalize_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/normalize_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/normalize_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/normalize_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/output_layers_handling_in_transformations_for_concat_multi_channel.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/pad_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/pad_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/pad_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/pad_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/prelu_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/prelu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/prelu_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/prelu_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/pull_reshape_through_dequantization_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_max_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_max_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_max_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_max_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_mean_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_mean_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_mean_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_mean_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_min_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_min_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_min_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_min_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_sum_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_sum_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reduce_sum_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/reduce_sum_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/relu_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/relu_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/relu_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/relu_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reshape_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/reshape_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/reshape_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/reshape_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/shuffle_channels_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/shuffle_channels_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/shuffle_channels_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/shuffle_channels_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/split_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/split_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/squeeze_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/squeeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/squeeze_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/squeeze_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/strided_slice_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/strided_slice_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/strided_slice_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/strided_slice_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/subtract_multiply_to_multiply_add_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/subtract_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/subtract_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/subtract_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/subtract_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/transpose_after_matmul_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/transpose_after_matmul_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/transpose_after_matmul_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/transpose_after_matmul_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/transpose_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/transpose_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/transpose_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/transpose_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/unsqueeze_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/unsqueeze_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/unsqueeze_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/unsqueeze_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/variadic_split_transformation.cpp b/src/tests/functional/plugin/shared/src/low_precision_transformations/variadic_split_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/low_precision_transformations/variadic_split_transformation.cpp rename to src/tests/functional/plugin/shared/src/low_precision_transformations/variadic_split_transformation.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/main.cpp b/src/tests/functional/plugin/shared/src/main.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/main.cpp rename to src/tests/functional/plugin/shared/src/main.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/ngraph_conversion_tests/conv_bias_fusion.cpp b/src/tests/functional/plugin/shared/src/ngraph_conversion_tests/conv_bias_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/ngraph_conversion_tests/conv_bias_fusion.cpp rename to src/tests/functional/plugin/shared/src/ngraph_conversion_tests/conv_bias_fusion.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp b/src/tests/functional/plugin/shared/src/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp rename to src/tests/functional/plugin/shared/src/ngraph_conversion_tests/plugin_specific_ngraph_conversion.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/onnx/quantized_models_tests.cpp b/src/tests/functional/plugin/shared/src/onnx/quantized_models_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/onnx/quantized_models_tests.cpp rename to src/tests/functional/plugin/shared/src/onnx/quantized_models_tests.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/op_impl_check/om_impl_check.cpp b/src/tests/functional/plugin/shared/src/op_impl_check/om_impl_check.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/op_impl_check/om_impl_check.cpp rename to src/tests/functional/plugin/shared/src/op_impl_check/om_impl_check.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/op_impl_check/single_op_graph.cpp b/src/tests/functional/plugin/shared/src/op_impl_check/single_op_graph.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/op_impl_check/single_op_graph.cpp rename to src/tests/functional/plugin/shared/src/op_impl_check/single_op_graph.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/precomp.hpp b/src/tests/functional/plugin/shared/src/precomp.hpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/precomp.hpp rename to src/tests/functional/plugin/shared/src/precomp.hpp diff --git a/inference-engine/tests/functional/plugin/shared/src/single_layer_tests/invalid_cases/proposal.cpp b/src/tests/functional/plugin/shared/src/single_layer_tests/invalid_cases/proposal.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/single_layer_tests/invalid_cases/proposal.cpp rename to src/tests/functional/plugin/shared/src/single_layer_tests/invalid_cases/proposal.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/stress_tests/stress_tests.cpp b/src/tests/functional/plugin/shared/src/stress_tests/stress_tests.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/stress_tests/stress_tests.cpp rename to src/tests/functional/plugin/shared/src/stress_tests/stress_tests.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/subgraph_tests/codegen_add.cpp b/src/tests/functional/plugin/shared/src/subgraph_tests/codegen_add.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/subgraph_tests/codegen_add.cpp rename to src/tests/functional/plugin/shared/src/subgraph_tests/codegen_add.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/subgraph_tests/codegen_bert.cpp b/src/tests/functional/plugin/shared/src/subgraph_tests/codegen_bert.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/subgraph_tests/codegen_bert.cpp rename to src/tests/functional/plugin/shared/src/subgraph_tests/codegen_bert.cpp diff --git a/inference-engine/tests/functional/plugin/shared/src/subgraph_tests/codegen_gelu.cpp b/src/tests/functional/plugin/shared/src/subgraph_tests/codegen_gelu.cpp similarity index 100% rename from inference-engine/tests/functional/plugin/shared/src/subgraph_tests/codegen_gelu.cpp rename to src/tests/functional/plugin/shared/src/subgraph_tests/codegen_gelu.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/CMakeLists.txt b/src/tests/functional/shared_test_classes/CMakeLists.txt similarity index 94% rename from inference-engine/tests/functional/shared_test_classes/CMakeLists.txt rename to src/tests/functional/shared_test_classes/CMakeLists.txt index 652f2ea8f39..1c11d10b69c 100644 --- a/inference-engine/tests/functional/shared_test_classes/CMakeLists.txt +++ b/src/tests/functional/shared_test_classes/CMakeLists.txt @@ -21,6 +21,7 @@ addIeTarget( pugixml::static funcTestUtils ngraphFunctions + inference_engine_legacy ) ie_faster_build(${TARGET_NAME} diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/base/layer_test_utils.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/base/layer_test_utils.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/base/layer_test_utils.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/base/layer_test_utils.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/base/low_precision_transformations/layer_transformation.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/base/low_precision_transformations/layer_transformation.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/base/low_precision_transformations/layer_transformation.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/base/low_precision_transformations/layer_transformation.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/base/ov_subgraph.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/base/ov_subgraph.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/base/ov_subgraph.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/base/ov_subgraph.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/compare_results.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/compare_results.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/compare_results.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/compare_results.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/generate_inputs.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/generate_inputs.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/generate_inputs.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/generate_inputs.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/read_ir.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/read_ir.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/read_ir.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/read_ir/read_ir.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/activation.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/activation.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/activation.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/activation.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/adaptive_pooling.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/adaptive_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/adaptive_pooling.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/adaptive_pooling.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_norm.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_norm.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_norm.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_norm.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_to_space.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_to_space.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_to_space.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/batch_to_space.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/binary_convolution.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/binary_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/binary_convolution.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/binary_convolution.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/broadcast.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/broadcast.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/broadcast.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/broadcast.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/bucketize.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/bucketize.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/bucketize.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/bucketize.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/clamp.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/clamp.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/clamp.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/clamp.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/comparison.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/comparison.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/comparison.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/comparison.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/constant.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/constant.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/constant.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/constant.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/conversion.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/conversion.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/conversion.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/conversion.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_i420.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_i420.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_i420.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_i420.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_nv12.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_nv12.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_nv12.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_nv12.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop_data.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop_data.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder_seq_len.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder_seq_len.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder_seq_len.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_greedy_decoder_seq_len.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_loss.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_loss.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_loss.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/ctc_loss.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/cum_sum.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/cum_sum.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/cum_sum.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/cum_sum.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_convolution.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_psroi_pooling.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_psroi_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_psroi_pooling.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/deformable_psroi_pooling.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/depth_to_space.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/depth_to_space.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/depth_to_space.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/depth_to_space.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/detection_output.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/detection_output.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/detection_output.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/detection_output.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/dft.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/dft.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/dft.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/dft.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/eltwise.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/eltwise.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/eltwise.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_offsets_sum.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_offsets_sum.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_offsets_sum.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_offsets_sum.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_packed_sum.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_packed_sum.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_packed_sum.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_bag_packed_sum.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_segments_sum.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_segments_sum.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_segments_sum.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/embedding_segments_sum.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_detection_output.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_detection_output.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_detection_output.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_detection_output.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_generate_proposals_single_image.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_generate_proposals_single_image.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_generate_proposals_single_image.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_generate_proposals_single_image.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_prior_grid_generator.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_prior_grid_generator.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_prior_grid_generator.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_prior_grid_generator.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_roifeatureextractor.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_roifeatureextractor.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_roifeatureextractor.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_roifeatureextractor.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_topkrois.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_topkrois.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_topkrois.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/experimental_detectron_topkrois.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/extract_image_patches.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/extract_image_patches.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/extract_image_patches.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/extract_image_patches.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/fake_quantize.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/fake_quantize.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/fake_quantize.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/fake_quantize.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_elements.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_elements.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_elements.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_elements.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_nd.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_nd.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_nd.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_nd.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_tree.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_tree.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_tree.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gather_tree.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/grn.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/grn.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/grn.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/grn.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution_backprop_data.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution_backprop_data.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/group_convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_cell.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_cell.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_cell.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_cell.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_sequence.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_sequence.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/gru_sequence.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/interpolate.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/interpolate.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/interpolate.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/interpolate.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/log_softmax.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/log_softmax.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/log_softmax.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/log_softmax.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/logical.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/logical.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/logical.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/logical.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/loop.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/loop.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/loop.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/loop.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/low_precision.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/low_precision.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/low_precision.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/low_precision.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lrn.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lrn.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lrn.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lrn.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_cell.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_cell.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_cell.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_cell.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_sequence.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_sequence.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/lstm_sequence.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mat_mul.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mat_mul.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mat_mul.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mat_mul.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/matrix_nms.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/matrix_nms.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/matrix_nms.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/matrix_nms.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/memory.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/memory.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/memory.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/memory.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/minimum_maximum.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/minimum_maximum.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/minimum_maximum.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/minimum_maximum.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/multiclass_nms.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/multiclass_nms.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/multiclass_nms.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/multiclass_nms.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mvn.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mvn.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mvn.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/mvn.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/non_max_suppression.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/non_max_suppression.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/non_max_suppression.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/non_max_suppression.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/nonzero.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/nonzero.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/nonzero.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/nonzero.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/normalize_l2.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/normalize_l2.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/normalize_l2.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/normalize_l2.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/one_hot.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/one_hot.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/one_hot.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/one_hot.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pad.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pad.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pad.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pad.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pooling.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pooling.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pooling.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/pooling.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/power.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/power.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/power.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/power.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box_clustered.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box_clustered.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box_clustered.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/prior_box_clustered.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/proposal.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/proposal.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/proposal.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/proposal.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/psroi_pooling.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/psroi_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/psroi_pooling.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/psroi_pooling.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/range.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/range.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/range.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/range.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reduce_ops.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reduce_ops.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reduce_ops.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reduce_ops.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/region_yolo.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/region_yolo.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/region_yolo.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/region_yolo.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reorg_yolo.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reorg_yolo.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reorg_yolo.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reorg_yolo.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reshape.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reshape.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reshape.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reshape.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/result.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/result.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/result.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/result.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reverse_sequence.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reverse_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reverse_sequence.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/reverse_sequence.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_cell.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_cell.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_cell.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_cell.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_sequence.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_sequence.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/rnn_sequence.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_align.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_align.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_align.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_align.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_pooling.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_pooling.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_pooling.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roi_pooling.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roll.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roll.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roll.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/roll.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_ND_update.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_ND_update.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_ND_update.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_ND_update.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_elements_update.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_elements_update.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_elements_update.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_elements_update.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_update.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_update.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_update.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/scatter_update.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/select.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/select.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/select.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/select.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shape_of.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shape_of.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shape_of.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shape_of.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shuffle_channels.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shuffle_channels.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shuffle_channels.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/shuffle_channels.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/slice.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/slice.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/slice.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/slice.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/softmax.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/softmax.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/softmax.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/softmax.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_batch.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_batch.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_batch.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_batch.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_depth.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_depth.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_depth.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/space_to_depth.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/split.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/split.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/split.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/split.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/squeeze_unsqueeze.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/squeeze_unsqueeze.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/squeeze_unsqueeze.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/squeeze_unsqueeze.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/strided_slice.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/strided_slice.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/strided_slice.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/strided_slice.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tensor_iterator.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tensor_iterator.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tensor_iterator.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tensor_iterator.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tile.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tile.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tile.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/tile.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/topk.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/topk.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/topk.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/topk.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/transpose.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/transpose.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/transpose.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/transpose.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/variadic_split.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/variadic_split.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/variadic_split.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/variadic_split.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_concats_eltwise.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_concats_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_concats_eltwise.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_concats_eltwise.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_fq.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_fq.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_fq.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/activation_fq.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/basic_lstm.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/basic_lstm.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/basic_lstm.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/basic_lstm.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/broadcast_power.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/broadcast_power.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/broadcast_power.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/broadcast_power.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/cascade_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/cascade_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/cascade_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/cascade_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/clamp_fq.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/clamp_fq.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/clamp_fq.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/clamp_fq.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_conv.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_conv.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_conv.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_conv.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_multi_input.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_multi_input.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_multi_input.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_multi_input.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization_during_memory_requantization.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization_during_memory_requantization.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization_during_memory_requantization.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/concat_quantization_during_memory_requantization.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/connect_split_concat_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/connect_split_concat_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/connect_split_concat_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/connect_split_concat_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_conv_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_conv_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_conv_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_conv_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_strided_slice_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_strided_slice_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_strided_slice_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/const_strided_slice_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/constant_result.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/constant_result.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/constant_result.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/constant_result.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_eltwise_fusion.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_eltwise_fusion.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_eltwise_fusion.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_eltwise_fusion.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_eltwise.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_eltwise.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_eltwise.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_relu.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_relu.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_relu.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_fq_relu.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_strides_opt.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_strides_opt.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_strides_opt.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/conv_strides_opt.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convert_pad_to_group_conv.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convert_pad_to_group_conv.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convert_pad_to_group_conv.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convert_pad_to_group_conv.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/convolution_relu_sequence.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/copy_before_squeeze.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/copy_before_squeeze.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/copy_before_squeeze.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/copy_before_squeeze.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/crop4d.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/crop4d.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/crop4d.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/crop4d.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/delayed_copy_layer.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/delayed_copy_layer.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/delayed_copy_layer.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/delayed_copy_layer.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_conv_eltwise.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_conv_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_conv_eltwise.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_conv_eltwise.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_reshape_activation.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_reshape_activation.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_reshape_activation.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/eltwise_reshape_activation.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fc_conv_fc.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fc_conv_fc.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fc_conv_fc.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fc_conv_fc.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/first_connect_input_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/first_connect_input_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/first_connect_input_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/first_connect_input_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_conv_fq_affine.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_conv_fq_affine.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_conv_fq_affine.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_conv_fq_affine.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_with_mixed_levels.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_with_mixed_levels.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_with_mixed_levels.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/fq_with_mixed_levels.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/get_output_before_activation.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/get_output_before_activation.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/get_output_before_activation.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/get_output_before_activation.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/handling_orientation_conv.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/handling_orientation_conv.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/handling_orientation_conv.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/handling_orientation_conv.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_conv.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_conv.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_conv.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_conv.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_split_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_split_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_split_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/input_split_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_act_add.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_act_add.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_act_add.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_act_add.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_squeeze_add.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_squeeze_add.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_squeeze_add.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/matmul_squeeze_add.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_LSTMCell.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_LSTMCell.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_LSTMCell.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_LSTMCell.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_eltwise_reshape_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_eltwise_reshape_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_eltwise_reshape_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_eltwise_reshape_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_fq_concat_prelu.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_fq_concat_prelu.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_fq_concat_prelu.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/memory_fq_concat_prelu.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mul_conv_fusion.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mul_conv_fusion.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mul_conv_fusion.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mul_conv_fusion.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multi_input_scale.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multi_input_scale.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multi_input_scale.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multi_input_scale.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multioutput_eltwise_squeeze_eltwise.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multioutput_eltwise_squeeze_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multioutput_eltwise_squeeze_eltwise.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multioutput_eltwise_squeeze_eltwise.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_LSTMCell.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_LSTMCell.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_LSTMCell.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_LSTMCell.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_connect_split_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_connect_split_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_connect_split_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_connect_split_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_input_fq.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_input_fq.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_input_fq.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiple_input_fq.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiply_add.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiply_add.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiply_add.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/multiply_add.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mvn_multiply_add.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mvn_multiply_add.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mvn_multiply_add.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/mvn_multiply_add.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/negative_memory_layer_offset.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/negative_memory_layer_offset.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/negative_memory_layer_offset.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/negative_memory_layer_offset.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_result.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_result.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_result.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_result.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_shapeof_result.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_shapeof_result.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_shapeof_result.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/parameter_shapeof_result.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/perm_conv_perm_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/perm_conv_perm_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/perm_conv_perm_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/perm_conv_perm_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/preprocess.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/preprocess.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/preprocess.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/preprocess.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_convolution_backprop_data.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_convolution_backprop_data.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution_backprop_data.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution_backprop_data.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution_backprop_data.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_group_convolution_backprop_data.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_mat_mul.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_mat_mul.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_mat_mul.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/quantized_mat_mul.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/range_add.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/range_add.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/range_add.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/range_add.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reduce_eltwise.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reduce_eltwise.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reduce_eltwise.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reduce_eltwise.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_shape_of.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_shape_of.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_shape_of.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_shape_of.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_split_reshape.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_split_reshape.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_split_reshape.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/relu_split_reshape.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_conv_permute_reshape_act.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_conv_permute_reshape_act.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_conv_permute_reshape_act.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_conv_permute_reshape_act.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_reshape.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_reshape.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_reshape.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_permute_reshape.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_squeeze_reshape_relu.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_squeeze_reshape_relu.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_squeeze_reshape_relu.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/reshape_squeeze_reshape_relu.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift_conv_scaleshift.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift_conv_scaleshift.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift_conv_scaleshift.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/scaleshift_conv_scaleshift.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/simple_if.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/simple_if.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/simple_if.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/simple_if.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/softsign.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/softsign.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/softsign.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/softsign.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_memory.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_memory.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_memory.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_memory.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_multi_inputs.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_multi_inputs.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_multi_inputs.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_concat_multi_inputs.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_conv_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_relu.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_relu.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_relu.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_relu.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_trivial_permute_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_trivial_permute_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_trivial_permute_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/split_trivial_permute_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/stridedslice_conv.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/stridedslice_conv.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/stridedslice_conv.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/stridedslice_conv.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/tensor_names.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/tensor_names.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/tensor_names.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/tensor_names.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_add.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_add.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_add.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_add.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_conv_transpose_squeeze.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_conv_transpose_squeeze.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_conv_transpose_squeeze.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/transpose_conv_transpose_squeeze.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/trivial_concat.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/trivial_concat.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/trivial_concat.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/trivial_concat.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/two_fake_quantize_to_fullyconnected.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/two_fake_quantize_to_fullyconnected.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/two_fake_quantize_to_fullyconnected.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/two_fake_quantize_to_fullyconnected.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/variadic_split_pad.hpp b/src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/variadic_split_pad.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/variadic_split_pad.hpp rename to src/tests/functional/shared_test_classes/include/shared_test_classes/subgraph/variadic_split_pad.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/base/layer_test_utils.cpp b/src/tests/functional/shared_test_classes/src/base/layer_test_utils.cpp similarity index 98% rename from inference-engine/tests/functional/shared_test_classes/src/base/layer_test_utils.cpp rename to src/tests/functional/shared_test_classes/src/base/layer_test_utils.cpp index 67dc3d5cb2c..7292ae0eb78 100644 --- a/inference-engine/tests/functional/shared_test_classes/src/base/layer_test_utils.cpp +++ b/src/tests/functional/shared_test_classes/src/base/layer_test_utils.cpp @@ -131,54 +131,54 @@ inline void callCompare(const std::pair(reinterpret_cast(expectedBuffer), - actualBuffer, size, threshold, abs_threshold); - break; - case ngraph::element::Type_t::i32: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), - actualBuffer, size, threshold, abs_threshold); - break; - case ngraph::element::Type_t::i16: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + case ngraph::element::Type_t::boolean: + case ngraph::element::Type_t::u8: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), actualBuffer, size, threshold, abs_threshold); break; case ngraph::element::Type_t::i8: LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), actualBuffer, size, threshold, abs_threshold); break; - case ngraph::element::Type_t::u64: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + case ngraph::element::Type_t::u16: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), actualBuffer, size, threshold, abs_threshold); break; + case ngraph::element::Type_t::i16: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + actualBuffer, size, threshold, abs_threshold); + break; case ngraph::element::Type_t::u32: LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), actualBuffer, size, threshold, abs_threshold); break; - case ngraph::element::Type_t::u16: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), - actualBuffer, size, threshold, abs_threshold); - break; - case ngraph::element::Type_t::boolean: - case ngraph::element::Type_t::u8: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + case ngraph::element::Type_t::i32: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), actualBuffer, size, threshold, abs_threshold); break; - case ngraph::element::Type_t::f64: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), - actualBuffer, size, threshold, abs_threshold); + case ngraph::element::Type_t::u64: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + actualBuffer, size, threshold, abs_threshold); break; - case ngraph::element::Type_t::f32: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), - actualBuffer, size, threshold, abs_threshold); + case ngraph::element::Type_t::i64: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + actualBuffer, size, threshold, abs_threshold); + break; + case ngraph::element::Type_t::bf16: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + actualBuffer, size, threshold, abs_threshold); break; case ngraph::element::Type_t::f16: LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), actualBuffer, size, threshold, abs_threshold); break; - case ngraph::element::Type_t::bf16: - LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), - actualBuffer, size, threshold, abs_threshold); + case ngraph::element::Type_t::f32: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + actualBuffer, size, threshold, abs_threshold); + break; + case ngraph::element::Type_t::f64: + LayerTestsCommon::Compare(reinterpret_cast(expectedBuffer), + actualBuffer, size, threshold, abs_threshold); break; case ngraph::element::Type_t::i4: { auto expectedOut = ngraph::helpers::convertOutputPrecision( @@ -230,14 +230,9 @@ void LayerTestsCommon::Compare(const std::pairsize(); switch (precision) { - case InferenceEngine::Precision::FP32: - callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); - break; - case InferenceEngine::Precision::I32: - callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); - break; - case InferenceEngine::Precision::I64: - callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); + case InferenceEngine::Precision::BOOL: + case InferenceEngine::Precision::U8: + callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); break; case InferenceEngine::Precision::I8: callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); @@ -248,19 +243,30 @@ void LayerTestsCommon::Compare(const std::pair(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); break; - case InferenceEngine::Precision::BOOL: - case InferenceEngine::Precision::U8: - callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); + case InferenceEngine::Precision::U32: + callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); + break; + case InferenceEngine::Precision::I32: + callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); break; case InferenceEngine::Precision::U64: callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); break; + case InferenceEngine::Precision::I64: + callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); + break; case InferenceEngine::Precision::BF16: callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); break; case InferenceEngine::Precision::FP16: callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); break; + case InferenceEngine::Precision::FP32: + callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); + break; + case InferenceEngine::Precision::FP64: + callCompare(expected, reinterpret_cast(actualBuffer), size, threshold, abs_threshold); + break; default: FAIL() << "Comparator for " << precision << " precision isn't supported"; } diff --git a/inference-engine/tests/functional/shared_test_classes/src/base/low_precision_transformations/layer_transformation.cpp b/src/tests/functional/shared_test_classes/src/base/low_precision_transformations/layer_transformation.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/base/low_precision_transformations/layer_transformation.cpp rename to src/tests/functional/shared_test_classes/src/base/low_precision_transformations/layer_transformation.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/base/ov_subgraph.cpp b/src/tests/functional/shared_test_classes/src/base/ov_subgraph.cpp similarity index 97% rename from inference-engine/tests/functional/shared_test_classes/src/base/ov_subgraph.cpp rename to src/tests/functional/shared_test_classes/src/base/ov_subgraph.cpp index 851a2dad329..d6cf3cfd997 100644 --- a/inference-engine/tests/functional/shared_test_classes/src/base/ov_subgraph.cpp +++ b/src/tests/functional/shared_test_classes/src/base/ov_subgraph.cpp @@ -55,6 +55,8 @@ void SubgraphBaseTest::run() { try { if (!inputDynamicShapes.empty()) { // resize ngraph function according new target shape + // Note: output shapes of some nodes depend on the input data + // so for some tests we need to override this function and replace parameter with constant node to get correct output shapes init_ref_function(functionRefs, targetStaticShapeVec); } generate_inputs(targetStaticShapeVec); diff --git a/inference-engine/tests/functional/shared_test_classes/src/precomp.hpp b/src/tests/functional/shared_test_classes/src/precomp.hpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/precomp.hpp rename to src/tests/functional/shared_test_classes/src/precomp.hpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/read_ir/compareResults.cpp b/src/tests/functional/shared_test_classes/src/read_ir/compareResults.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/read_ir/compareResults.cpp rename to src/tests/functional/shared_test_classes/src/read_ir/compareResults.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/read_ir/generate_inputs.cpp b/src/tests/functional/shared_test_classes/src/read_ir/generate_inputs.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/read_ir/generate_inputs.cpp rename to src/tests/functional/shared_test_classes/src/read_ir/generate_inputs.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/read_ir/read_ir.cpp b/src/tests/functional/shared_test_classes/src/read_ir/read_ir.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/read_ir/read_ir.cpp rename to src/tests/functional/shared_test_classes/src/read_ir/read_ir.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/activation.cpp b/src/tests/functional/shared_test_classes/src/single_layer/activation.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/activation.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/activation.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/adaptive_pooling.cpp b/src/tests/functional/shared_test_classes/src/single_layer/adaptive_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/adaptive_pooling.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/adaptive_pooling.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/batch_norm.cpp b/src/tests/functional/shared_test_classes/src/single_layer/batch_norm.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/batch_norm.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/batch_norm.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/batch_to_space.cpp b/src/tests/functional/shared_test_classes/src/single_layer/batch_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/batch_to_space.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/batch_to_space.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/binary_convolution.cpp b/src/tests/functional/shared_test_classes/src/single_layer/binary_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/binary_convolution.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/binary_convolution.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/broadcast.cpp b/src/tests/functional/shared_test_classes/src/single_layer/broadcast.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/broadcast.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/broadcast.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/bucketize.cpp b/src/tests/functional/shared_test_classes/src/single_layer/bucketize.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/bucketize.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/bucketize.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/clamp.cpp b/src/tests/functional/shared_test_classes/src/single_layer/clamp.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/clamp.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/clamp.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/comparison.cpp b/src/tests/functional/shared_test_classes/src/single_layer/comparison.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/comparison.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/comparison.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/concat.cpp b/src/tests/functional/shared_test_classes/src/single_layer/concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/concat.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/constant.cpp b/src/tests/functional/shared_test_classes/src/single_layer/constant.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/constant.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/constant.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/conversion.cpp b/src/tests/functional/shared_test_classes/src/single_layer/conversion.cpp similarity index 93% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/conversion.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/conversion.cpp index 0c5e7a387a7..1320abbd362 100644 --- a/inference-engine/tests/functional/shared_test_classes/src/single_layer/conversion.cpp +++ b/src/tests/functional/shared_test_classes/src/single_layer/conversion.cpp @@ -28,6 +28,9 @@ std::string ConversionLayerTest::getTestCaseName(const testing::TestParamInfo> inputShape; diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/convert_color_i420.cpp b/src/tests/functional/shared_test_classes/src/single_layer/convert_color_i420.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/convert_color_i420.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/convert_color_i420.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/convert_color_nv12.cpp b/src/tests/functional/shared_test_classes/src/single_layer/convert_color_nv12.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/convert_color_nv12.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/convert_color_nv12.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/convolution.cpp b/src/tests/functional/shared_test_classes/src/single_layer/convolution.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/convolution.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/convolution.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/convolution_backprop.cpp b/src/tests/functional/shared_test_classes/src/single_layer/convolution_backprop.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/convolution_backprop.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/convolution_backprop.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/convolution_backprop_data.cpp b/src/tests/functional/shared_test_classes/src/single_layer/convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/convolution_backprop_data.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder.cpp b/src/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder_seq_len.cpp b/src/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder_seq_len.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder_seq_len.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/ctc_greedy_decoder_seq_len.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/ctc_loss.cpp b/src/tests/functional/shared_test_classes/src/single_layer/ctc_loss.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/ctc_loss.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/ctc_loss.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/cum_sum.cpp b/src/tests/functional/shared_test_classes/src/single_layer/cum_sum.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/cum_sum.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/cum_sum.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/deformable_convolution.cpp b/src/tests/functional/shared_test_classes/src/single_layer/deformable_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/deformable_convolution.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/deformable_convolution.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/deformable_psroi_pooling.cpp b/src/tests/functional/shared_test_classes/src/single_layer/deformable_psroi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/deformable_psroi_pooling.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/deformable_psroi_pooling.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/depth_to_space.cpp b/src/tests/functional/shared_test_classes/src/single_layer/depth_to_space.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/depth_to_space.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/depth_to_space.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/detection_output.cpp b/src/tests/functional/shared_test_classes/src/single_layer/detection_output.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/detection_output.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/detection_output.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/dft.cpp b/src/tests/functional/shared_test_classes/src/single_layer/dft.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/dft.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/dft.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/eltwise.cpp b/src/tests/functional/shared_test_classes/src/single_layer/eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/eltwise.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/eltwise.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/embedding_bag_offsets_sum.cpp b/src/tests/functional/shared_test_classes/src/single_layer/embedding_bag_offsets_sum.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/embedding_bag_offsets_sum.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/embedding_bag_offsets_sum.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/embedding_bag_packed_sum.cpp b/src/tests/functional/shared_test_classes/src/single_layer/embedding_bag_packed_sum.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/embedding_bag_packed_sum.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/embedding_bag_packed_sum.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/embedding_segments_sum.cpp b/src/tests/functional/shared_test_classes/src/single_layer/embedding_segments_sum.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/embedding_segments_sum.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/embedding_segments_sum.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_detection_output.cpp b/src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_detection_output.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_detection_output.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_detection_output.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_generate_proposals_single_image.cpp b/src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_generate_proposals_single_image.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_generate_proposals_single_image.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_generate_proposals_single_image.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_prior_grid_generator.cpp b/src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_prior_grid_generator.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_prior_grid_generator.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_prior_grid_generator.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_roifeatureextractor.cpp b/src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_roifeatureextractor.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_roifeatureextractor.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_roifeatureextractor.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_topkrois.cpp b/src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_topkrois.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_topkrois.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/experimental_detectron_topkrois.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/extract_image_patches.cpp b/src/tests/functional/shared_test_classes/src/single_layer/extract_image_patches.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/extract_image_patches.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/extract_image_patches.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/fake_quantize.cpp b/src/tests/functional/shared_test_classes/src/single_layer/fake_quantize.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/fake_quantize.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/fake_quantize.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/gather.cpp b/src/tests/functional/shared_test_classes/src/single_layer/gather.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/gather.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/gather.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/gather_elements.cpp b/src/tests/functional/shared_test_classes/src/single_layer/gather_elements.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/gather_elements.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/gather_elements.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/gather_nd.cpp b/src/tests/functional/shared_test_classes/src/single_layer/gather_nd.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/gather_nd.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/gather_nd.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/gather_tree.cpp b/src/tests/functional/shared_test_classes/src/single_layer/gather_tree.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/gather_tree.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/gather_tree.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/grn.cpp b/src/tests/functional/shared_test_classes/src/single_layer/grn.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/grn.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/grn.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/group_convolution.cpp b/src/tests/functional/shared_test_classes/src/single_layer/group_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/group_convolution.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/group_convolution.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/group_convolution_backprop_data.cpp b/src/tests/functional/shared_test_classes/src/single_layer/group_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/group_convolution_backprop_data.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/group_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/gru_cell.cpp b/src/tests/functional/shared_test_classes/src/single_layer/gru_cell.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/gru_cell.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/gru_cell.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/gru_sequence.cpp b/src/tests/functional/shared_test_classes/src/single_layer/gru_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/gru_sequence.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/gru_sequence.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/interpolate.cpp b/src/tests/functional/shared_test_classes/src/single_layer/interpolate.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/interpolate.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/interpolate.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/log_softmax.cpp b/src/tests/functional/shared_test_classes/src/single_layer/log_softmax.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/log_softmax.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/log_softmax.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/logical.cpp b/src/tests/functional/shared_test_classes/src/single_layer/logical.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/logical.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/logical.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/loop.cpp b/src/tests/functional/shared_test_classes/src/single_layer/loop.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/loop.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/loop.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/low_precision.cpp b/src/tests/functional/shared_test_classes/src/single_layer/low_precision.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/low_precision.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/low_precision.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/lrn.cpp b/src/tests/functional/shared_test_classes/src/single_layer/lrn.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/lrn.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/lrn.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/lstm_cell.cpp b/src/tests/functional/shared_test_classes/src/single_layer/lstm_cell.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/lstm_cell.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/lstm_cell.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/lstm_sequence.cpp b/src/tests/functional/shared_test_classes/src/single_layer/lstm_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/lstm_sequence.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/lstm_sequence.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/mat_mul.cpp b/src/tests/functional/shared_test_classes/src/single_layer/mat_mul.cpp similarity index 99% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/mat_mul.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/mat_mul.cpp index c75c8995205..e3a54df0812 100644 --- a/inference-engine/tests/functional/shared_test_classes/src/single_layer/mat_mul.cpp +++ b/src/tests/functional/shared_test_classes/src/single_layer/mat_mul.cpp @@ -44,7 +44,7 @@ std::string MatMulTest::getTestCaseName(const testing::TestParamInfo &expectedOutputs, const std::vector &actualOutputs) { auto batchIndex = -1; - size_t numBatches, maxOutputBoxesPerBatch; + size_t numBatches(0), maxOutputBoxesPerBatch(0); GetOutputParams(numBatches, maxOutputBoxesPerBatch); std::vector numPerBatch(numBatches); for (int outputIndex = static_cast(expectedOutputs.size()) - 1; outputIndex >= 0 ; outputIndex--) { diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/memory.cpp b/src/tests/functional/shared_test_classes/src/single_layer/memory.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/memory.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/memory.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/minimum_maximum.cpp b/src/tests/functional/shared_test_classes/src/single_layer/minimum_maximum.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/minimum_maximum.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/minimum_maximum.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/multiclass_nms.cpp b/src/tests/functional/shared_test_classes/src/single_layer/multiclass_nms.cpp similarity index 99% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/multiclass_nms.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/multiclass_nms.cpp index 48363ae778f..00e300c82e2 100644 --- a/inference-engine/tests/functional/shared_test_classes/src/single_layer/multiclass_nms.cpp +++ b/src/tests/functional/shared_test_classes/src/single_layer/multiclass_nms.cpp @@ -133,7 +133,7 @@ void MulticlassNmsLayerTest::GetOutputParams(size_t& numBatches, size_t& maxOutp void MulticlassNmsLayerTest::compare(const std::vector &expectedOutputs, const std::vector &actualOutputs) { auto batchIndex = -1; - size_t numBatches, maxOutputBoxesPerBatch; + size_t numBatches(0), maxOutputBoxesPerBatch(0); GetOutputParams(numBatches, maxOutputBoxesPerBatch); std::vector numPerBatch(numBatches); for (int outputIndex = static_cast(expectedOutputs.size()) - 1; outputIndex >= 0; outputIndex--) { diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/mvn.cpp b/src/tests/functional/shared_test_classes/src/single_layer/mvn.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/mvn.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/mvn.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/non_max_suppression.cpp b/src/tests/functional/shared_test_classes/src/single_layer/non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/non_max_suppression.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/non_max_suppression.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/nonzero.cpp b/src/tests/functional/shared_test_classes/src/single_layer/nonzero.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/nonzero.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/nonzero.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/normalize_l2.cpp b/src/tests/functional/shared_test_classes/src/single_layer/normalize_l2.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/normalize_l2.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/normalize_l2.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/one_hot.cpp b/src/tests/functional/shared_test_classes/src/single_layer/one_hot.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/one_hot.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/one_hot.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/pad.cpp b/src/tests/functional/shared_test_classes/src/single_layer/pad.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/pad.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/pad.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/pooling.cpp b/src/tests/functional/shared_test_classes/src/single_layer/pooling.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/pooling.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/pooling.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/power.cpp b/src/tests/functional/shared_test_classes/src/single_layer/power.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/power.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/power.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/prior_box.cpp b/src/tests/functional/shared_test_classes/src/single_layer/prior_box.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/prior_box.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/prior_box.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/prior_box_clustered.cpp b/src/tests/functional/shared_test_classes/src/single_layer/prior_box_clustered.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/prior_box_clustered.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/prior_box_clustered.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/proposal.cpp b/src/tests/functional/shared_test_classes/src/single_layer/proposal.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/proposal.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/proposal.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/psroi_pooling.cpp b/src/tests/functional/shared_test_classes/src/single_layer/psroi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/psroi_pooling.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/psroi_pooling.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/range.cpp b/src/tests/functional/shared_test_classes/src/single_layer/range.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/range.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/range.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/reduce_ops.cpp b/src/tests/functional/shared_test_classes/src/single_layer/reduce_ops.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/reduce_ops.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/reduce_ops.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/region_yolo.cpp b/src/tests/functional/shared_test_classes/src/single_layer/region_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/region_yolo.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/region_yolo.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/reorg_yolo.cpp b/src/tests/functional/shared_test_classes/src/single_layer/reorg_yolo.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/reorg_yolo.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/reorg_yolo.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/reshape.cpp b/src/tests/functional/shared_test_classes/src/single_layer/reshape.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/reshape.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/reshape.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/result.cpp b/src/tests/functional/shared_test_classes/src/single_layer/result.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/result.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/result.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/reverse_sequence.cpp b/src/tests/functional/shared_test_classes/src/single_layer/reverse_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/reverse_sequence.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/reverse_sequence.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/rnn_cell.cpp b/src/tests/functional/shared_test_classes/src/single_layer/rnn_cell.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/rnn_cell.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/rnn_cell.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/rnn_sequence.cpp b/src/tests/functional/shared_test_classes/src/single_layer/rnn_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/rnn_sequence.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/rnn_sequence.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/roi_align.cpp b/src/tests/functional/shared_test_classes/src/single_layer/roi_align.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/roi_align.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/roi_align.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/roi_pooling.cpp b/src/tests/functional/shared_test_classes/src/single_layer/roi_pooling.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/roi_pooling.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/roi_pooling.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/roll.cpp b/src/tests/functional/shared_test_classes/src/single_layer/roll.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/roll.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/roll.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/scatter_ND_update.cpp b/src/tests/functional/shared_test_classes/src/single_layer/scatter_ND_update.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/scatter_ND_update.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/scatter_ND_update.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/scatter_elements_update.cpp b/src/tests/functional/shared_test_classes/src/single_layer/scatter_elements_update.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/scatter_elements_update.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/scatter_elements_update.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/scatter_update.cpp b/src/tests/functional/shared_test_classes/src/single_layer/scatter_update.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/scatter_update.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/scatter_update.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/select.cpp b/src/tests/functional/shared_test_classes/src/single_layer/select.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/select.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/select.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/shape_of.cpp b/src/tests/functional/shared_test_classes/src/single_layer/shape_of.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/shape_of.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/shape_of.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/shuffle_channels.cpp b/src/tests/functional/shared_test_classes/src/single_layer/shuffle_channels.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/shuffle_channels.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/shuffle_channels.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/slice.cpp b/src/tests/functional/shared_test_classes/src/single_layer/slice.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/slice.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/slice.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/softmax.cpp b/src/tests/functional/shared_test_classes/src/single_layer/softmax.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/softmax.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/softmax.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/space_to_batch.cpp b/src/tests/functional/shared_test_classes/src/single_layer/space_to_batch.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/space_to_batch.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/space_to_batch.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/space_to_depth.cpp b/src/tests/functional/shared_test_classes/src/single_layer/space_to_depth.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/space_to_depth.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/space_to_depth.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/split.cpp b/src/tests/functional/shared_test_classes/src/single_layer/split.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/split.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/split.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/squeeze_unsqueeze.cpp b/src/tests/functional/shared_test_classes/src/single_layer/squeeze_unsqueeze.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/squeeze_unsqueeze.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/squeeze_unsqueeze.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/strided_slice.cpp b/src/tests/functional/shared_test_classes/src/single_layer/strided_slice.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/strided_slice.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/strided_slice.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/tensor_iterator.cpp b/src/tests/functional/shared_test_classes/src/single_layer/tensor_iterator.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/tensor_iterator.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/tensor_iterator.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/tile.cpp b/src/tests/functional/shared_test_classes/src/single_layer/tile.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/tile.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/tile.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/topk.cpp b/src/tests/functional/shared_test_classes/src/single_layer/topk.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/topk.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/topk.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/transpose.cpp b/src/tests/functional/shared_test_classes/src/single_layer/transpose.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/transpose.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/transpose.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/single_layer/variadic_split.cpp b/src/tests/functional/shared_test_classes/src/single_layer/variadic_split.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/single_layer/variadic_split.cpp rename to src/tests/functional/shared_test_classes/src/single_layer/variadic_split.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/activation_concats_eltwise.cpp b/src/tests/functional/shared_test_classes/src/subgraph/activation_concats_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/activation_concats_eltwise.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/activation_concats_eltwise.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/activation_fq.cpp b/src/tests/functional/shared_test_classes/src/subgraph/activation_fq.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/activation_fq.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/activation_fq.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/basic_lstm.cpp b/src/tests/functional/shared_test_classes/src/subgraph/basic_lstm.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/basic_lstm.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/basic_lstm.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/broadcast_power.cpp b/src/tests/functional/shared_test_classes/src/subgraph/broadcast_power.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/broadcast_power.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/broadcast_power.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/cascade_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/cascade_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/cascade_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/cascade_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/clamp_fq.cpp b/src/tests/functional/shared_test_classes/src/subgraph/clamp_fq.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/clamp_fq.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/clamp_fq.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_conv.cpp b/src/tests/functional/shared_test_classes/src/subgraph/concat_conv.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_conv.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/concat_conv.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_multi_input.cpp b/src/tests/functional/shared_test_classes/src/subgraph/concat_multi_input.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_multi_input.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/concat_multi_input.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_quantization_during_memory_requantization.cpp b/src/tests/functional/shared_test_classes/src/subgraph/concat_quantization_during_memory_requantization.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_quantization_during_memory_requantization.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/concat_quantization_during_memory_requantization.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_qunatization.cpp b/src/tests/functional/shared_test_classes/src/subgraph/concat_qunatization.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/concat_qunatization.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/concat_qunatization.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/connect_split_concat_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/connect_split_concat_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/connect_split_concat_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/connect_split_concat_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/const_conv_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/const_conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/const_conv_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/const_conv_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/const_strided_slice_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/const_strided_slice_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/const_strided_slice_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/const_strided_slice_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/constant_result.cpp b/src/tests/functional/shared_test_classes/src/subgraph/constant_result.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/constant_result.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/constant_result.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_eltwise_fusion.cpp b/src/tests/functional/shared_test_classes/src/subgraph/conv_eltwise_fusion.cpp similarity index 96% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_eltwise_fusion.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/conv_eltwise_fusion.cpp index 6e9e4578356..e45137f960c 100644 --- a/inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_eltwise_fusion.cpp +++ b/src/tests/functional/shared_test_classes/src/subgraph/conv_eltwise_fusion.cpp @@ -3,10 +3,10 @@ // #include "transformations/common_optimizations/conv_mul_fusion.hpp" -#include "transformations/op_conversions/convert_convolutions.hpp" -#include "transformations/common_optimizations/conv_bias_fusion.hpp" #include "ngraph/pass/constant_folding.hpp" #include "shared_test_classes/subgraph/conv_eltwise_fusion.hpp" +#include +#include namespace SubgraphTestsDefinitions { diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_fq_eltwise.cpp b/src/tests/functional/shared_test_classes/src/subgraph/conv_fq_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_fq_eltwise.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/conv_fq_eltwise.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_fq_relu.cpp b/src/tests/functional/shared_test_classes/src/subgraph/conv_fq_relu.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_fq_relu.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/conv_fq_relu.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_strides_opt.cpp b/src/tests/functional/shared_test_classes/src/subgraph/conv_strides_opt.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/conv_strides_opt.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/conv_strides_opt.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/convert_pad_to_group_conv.cpp b/src/tests/functional/shared_test_classes/src/subgraph/convert_pad_to_group_conv.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/convert_pad_to_group_conv.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/convert_pad_to_group_conv.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/convolution_relu_sequence.cpp b/src/tests/functional/shared_test_classes/src/subgraph/convolution_relu_sequence.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/convolution_relu_sequence.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/convolution_relu_sequence.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/copy_before_squeeze.cpp b/src/tests/functional/shared_test_classes/src/subgraph/copy_before_squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/copy_before_squeeze.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/copy_before_squeeze.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/crop4d.cpp b/src/tests/functional/shared_test_classes/src/subgraph/crop4d.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/crop4d.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/crop4d.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/delayed_copy_layer.cpp b/src/tests/functional/shared_test_classes/src/subgraph/delayed_copy_layer.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/delayed_copy_layer.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/delayed_copy_layer.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/eltwise_conv_eltwise.cpp b/src/tests/functional/shared_test_classes/src/subgraph/eltwise_conv_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/eltwise_conv_eltwise.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/eltwise_conv_eltwise.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/eltwise_reshape_activation.cpp b/src/tests/functional/shared_test_classes/src/subgraph/eltwise_reshape_activation.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/eltwise_reshape_activation.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/eltwise_reshape_activation.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/fc_conv_fc.cpp b/src/tests/functional/shared_test_classes/src/subgraph/fc_conv_fc.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/fc_conv_fc.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/fc_conv_fc.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/first_connect_input_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/first_connect_input_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/first_connect_input_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/first_connect_input_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/fq_conv_fq_affine.cpp b/src/tests/functional/shared_test_classes/src/subgraph/fq_conv_fq_affine.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/fq_conv_fq_affine.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/fq_conv_fq_affine.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/fq_with_mixed_levels.cpp b/src/tests/functional/shared_test_classes/src/subgraph/fq_with_mixed_levels.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/fq_with_mixed_levels.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/fq_with_mixed_levels.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/get_output_before_activation.cpp b/src/tests/functional/shared_test_classes/src/subgraph/get_output_before_activation.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/get_output_before_activation.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/get_output_before_activation.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/handling_orientation_conv.cpp b/src/tests/functional/shared_test_classes/src/subgraph/handling_orientation_conv.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/handling_orientation_conv.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/handling_orientation_conv.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/input_conv.cpp b/src/tests/functional/shared_test_classes/src/subgraph/input_conv.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/input_conv.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/input_conv.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/input_split_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/input_split_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/input_split_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/input_split_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/matmul_act_add.cpp b/src/tests/functional/shared_test_classes/src/subgraph/matmul_act_add.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/matmul_act_add.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/matmul_act_add.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/matmul_squeeze_add.cpp b/src/tests/functional/shared_test_classes/src/subgraph/matmul_squeeze_add.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/matmul_squeeze_add.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/matmul_squeeze_add.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/memory_LSTMCell.cpp b/src/tests/functional/shared_test_classes/src/subgraph/memory_LSTMCell.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/memory_LSTMCell.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/memory_LSTMCell.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/memory_eltwise_reshape_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/memory_eltwise_reshape_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/memory_eltwise_reshape_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/memory_eltwise_reshape_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/memory_fq_concat_prelu.cpp b/src/tests/functional/shared_test_classes/src/subgraph/memory_fq_concat_prelu.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/memory_fq_concat_prelu.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/memory_fq_concat_prelu.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/mul_conv_fusion.cpp b/src/tests/functional/shared_test_classes/src/subgraph/mul_conv_fusion.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/mul_conv_fusion.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/mul_conv_fusion.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/multi_input_scale.cpp b/src/tests/functional/shared_test_classes/src/subgraph/multi_input_scale.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/multi_input_scale.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/multi_input_scale.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/multioutput_eltwise_squeeze_eltwise.cpp b/src/tests/functional/shared_test_classes/src/subgraph/multioutput_eltwise_squeeze_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/multioutput_eltwise_squeeze_eltwise.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/multioutput_eltwise_squeeze_eltwise.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_LSTMCell.cpp b/src/tests/functional/shared_test_classes/src/subgraph/multiple_LSTMCell.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_LSTMCell.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/multiple_LSTMCell.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/multiple_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/multiple_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_connect_split_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/multiple_connect_split_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_connect_split_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/multiple_connect_split_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_input_fq.cpp b/src/tests/functional/shared_test_classes/src/subgraph/multiple_input_fq.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/multiple_input_fq.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/multiple_input_fq.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/multiply_add.cpp b/src/tests/functional/shared_test_classes/src/subgraph/multiply_add.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/multiply_add.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/multiply_add.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/mvn_multiply_add.cpp b/src/tests/functional/shared_test_classes/src/subgraph/mvn_multiply_add.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/mvn_multiply_add.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/mvn_multiply_add.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/negative_memory_layer_offset.cpp b/src/tests/functional/shared_test_classes/src/subgraph/negative_memory_layer_offset.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/negative_memory_layer_offset.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/negative_memory_layer_offset.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/parameter_result.cpp b/src/tests/functional/shared_test_classes/src/subgraph/parameter_result.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/parameter_result.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/parameter_result.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/parameter_shapeof_result.cpp b/src/tests/functional/shared_test_classes/src/subgraph/parameter_shapeof_result.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/parameter_shapeof_result.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/parameter_shapeof_result.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/perm_conv_perm_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/perm_conv_perm_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/perm_conv_perm_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/perm_conv_perm_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/preprocess.cpp b/src/tests/functional/shared_test_classes/src/subgraph/preprocess.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/preprocess.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/preprocess.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_convolution_backprop_data.cpp b/src/tests/functional/shared_test_classes/src/subgraph/quantized_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_convolution_backprop_data.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/quantized_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution.cpp b/src/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution_backprop_data.cpp b/src/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution_backprop_data.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution_backprop_data.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/quantized_group_convolution_backprop_data.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_mat_mul.cpp b/src/tests/functional/shared_test_classes/src/subgraph/quantized_mat_mul.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/quantized_mat_mul.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/quantized_mat_mul.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/range_add.cpp b/src/tests/functional/shared_test_classes/src/subgraph/range_add.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/range_add.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/range_add.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/reduce_eltwise.cpp b/src/tests/functional/shared_test_classes/src/subgraph/reduce_eltwise.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/reduce_eltwise.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/reduce_eltwise.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/relu_shape_of.cpp b/src/tests/functional/shared_test_classes/src/subgraph/relu_shape_of.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/relu_shape_of.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/relu_shape_of.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/relu_split_reshape.cpp b/src/tests/functional/shared_test_classes/src/subgraph/relu_split_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/relu_split_reshape.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/relu_split_reshape.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/reshape_permute_conv_permute_reshape_act.cpp b/src/tests/functional/shared_test_classes/src/subgraph/reshape_permute_conv_permute_reshape_act.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/reshape_permute_conv_permute_reshape_act.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/reshape_permute_conv_permute_reshape_act.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/reshape_permute_reshape.cpp b/src/tests/functional/shared_test_classes/src/subgraph/reshape_permute_reshape.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/reshape_permute_reshape.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/reshape_permute_reshape.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/reshape_squeeze_reshape_relu.cpp b/src/tests/functional/shared_test_classes/src/subgraph/reshape_squeeze_reshape_relu.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/reshape_squeeze_reshape_relu.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/reshape_squeeze_reshape_relu.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/scale_shift.cpp b/src/tests/functional/shared_test_classes/src/subgraph/scale_shift.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/scale_shift.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/scale_shift.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/scaleshift_conv_scaleshift.cpp b/src/tests/functional/shared_test_classes/src/subgraph/scaleshift_conv_scaleshift.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/scaleshift_conv_scaleshift.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/scaleshift_conv_scaleshift.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/simple_if.cpp b/src/tests/functional/shared_test_classes/src/subgraph/simple_if.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/simple_if.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/simple_if.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/softsign.cpp b/src/tests/functional/shared_test_classes/src/subgraph/softsign.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/softsign.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/softsign.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/split_concat_memory.cpp b/src/tests/functional/shared_test_classes/src/subgraph/split_concat_memory.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/split_concat_memory.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/split_concat_memory.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/split_concat_multi_inputs.cpp b/src/tests/functional/shared_test_classes/src/subgraph/split_concat_multi_inputs.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/split_concat_multi_inputs.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/split_concat_multi_inputs.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/split_conv.cpp b/src/tests/functional/shared_test_classes/src/subgraph/split_conv.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/split_conv.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/split_conv.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/split_conv_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/split_conv_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/split_conv_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/split_conv_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/split_relu.cpp b/src/tests/functional/shared_test_classes/src/subgraph/split_relu.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/split_relu.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/split_relu.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/split_trivial_permute_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/split_trivial_permute_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/split_trivial_permute_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/split_trivial_permute_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/stridedslice_conv.cpp b/src/tests/functional/shared_test_classes/src/subgraph/stridedslice_conv.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/stridedslice_conv.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/stridedslice_conv.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/tensor_names.cpp b/src/tests/functional/shared_test_classes/src/subgraph/tensor_names.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/tensor_names.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/tensor_names.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/transpose_add.cpp b/src/tests/functional/shared_test_classes/src/subgraph/transpose_add.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/transpose_add.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/transpose_add.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/transpose_conv_transpose_squeeze.cpp b/src/tests/functional/shared_test_classes/src/subgraph/transpose_conv_transpose_squeeze.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/transpose_conv_transpose_squeeze.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/transpose_conv_transpose_squeeze.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/trivial_concat.cpp b/src/tests/functional/shared_test_classes/src/subgraph/trivial_concat.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/trivial_concat.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/trivial_concat.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/two_fake_quantize_to_fullyconnected.cpp b/src/tests/functional/shared_test_classes/src/subgraph/two_fake_quantize_to_fullyconnected.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/two_fake_quantize_to_fullyconnected.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/two_fake_quantize_to_fullyconnected.cpp diff --git a/inference-engine/tests/functional/shared_test_classes/src/subgraph/variadic_split_pad.cpp b/src/tests/functional/shared_test_classes/src/subgraph/variadic_split_pad.cpp similarity index 100% rename from inference-engine/tests/functional/shared_test_classes/src/subgraph/variadic_split_pad.cpp rename to src/tests/functional/shared_test_classes/src/subgraph/variadic_split_pad.cpp diff --git a/inference-engine/tests/ie_test_utils/CMakeLists.txt b/src/tests/ie_test_utils/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ie_test_utils/CMakeLists.txt rename to src/tests/ie_test_utils/CMakeLists.txt diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/CMakeLists.txt b/src/tests/ie_test_utils/common_test_utils/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/CMakeLists.txt rename to src/tests/ie_test_utils/common_test_utils/CMakeLists.txt diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/common_utils.cpp b/src/tests/ie_test_utils/common_test_utils/common_utils.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/common_utils.cpp rename to src/tests/ie_test_utils/common_test_utils/common_utils.cpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/common_utils.hpp b/src/tests/ie_test_utils/common_test_utils/common_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/common_utils.hpp rename to src/tests/ie_test_utils/common_test_utils/common_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/data_utils.cpp b/src/tests/ie_test_utils/common_test_utils/data_utils.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/data_utils.cpp rename to src/tests/ie_test_utils/common_test_utils/data_utils.cpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/data_utils.hpp b/src/tests/ie_test_utils/common_test_utils/data_utils.hpp similarity index 98% rename from inference-engine/tests/ie_test_utils/common_test_utils/data_utils.hpp rename to src/tests/ie_test_utils/common_test_utils/data_utils.hpp index 7bcee22e8f3..7453017077b 100644 --- a/inference-engine/tests/ie_test_utils/common_test_utils/data_utils.hpp +++ b/src/tests/ie_test_utils/common_test_utils/data_utils.hpp @@ -262,7 +262,12 @@ void inline fill_data_random(InferenceEngine::Blob::Ptr &blob, const uint32_t ra const int32_t k = 1, const int seed = 1) { using dataType = typename InferenceEngine::PrecisionTrait::value_type; auto *rawBlobDataPtr = blob->buffer().as(); - fill_data_random(rawBlobDataPtr, blob->size(), range, start_from, k, seed); + if (PRC == InferenceEngine::Precision::U4 || PRC == InferenceEngine::Precision::I4 || + PRC == InferenceEngine::Precision::BIN) { + fill_data_random(rawBlobDataPtr, blob->byteSize(), range, start_from, k, seed); + } else { + fill_data_random(rawBlobDataPtr, blob->size(), range, start_from, k, seed); + } } /** @brief Fill blob with a sorted sequence of unique elements randomly generated. diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/file_utils.cpp b/src/tests/ie_test_utils/common_test_utils/file_utils.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/file_utils.cpp rename to src/tests/ie_test_utils/common_test_utils/file_utils.cpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/file_utils.hpp b/src/tests/ie_test_utils/common_test_utils/file_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/file_utils.hpp rename to src/tests/ie_test_utils/common_test_utils/file_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/ngraph_test_utils.cpp b/src/tests/ie_test_utils/common_test_utils/ngraph_test_utils.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/ngraph_test_utils.cpp rename to src/tests/ie_test_utils/common_test_utils/ngraph_test_utils.cpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/ngraph_test_utils.hpp b/src/tests/ie_test_utils/common_test_utils/ngraph_test_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/ngraph_test_utils.hpp rename to src/tests/ie_test_utils/common_test_utils/ngraph_test_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/ov_common_utils.hpp b/src/tests/ie_test_utils/common_test_utils/ov_common_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/ov_common_utils.hpp rename to src/tests/ie_test_utils/common_test_utils/ov_common_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/precomp.hpp b/src/tests/ie_test_utils/common_test_utils/precomp.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/precomp.hpp rename to src/tests/ie_test_utils/common_test_utils/precomp.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/test_assertions.hpp b/src/tests/ie_test_utils/common_test_utils/test_assertions.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/test_assertions.hpp rename to src/tests/ie_test_utils/common_test_utils/test_assertions.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/test_common.cpp b/src/tests/ie_test_utils/common_test_utils/test_common.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/test_common.cpp rename to src/tests/ie_test_utils/common_test_utils/test_common.cpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/test_common.hpp b/src/tests/ie_test_utils/common_test_utils/test_common.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/test_common.hpp rename to src/tests/ie_test_utils/common_test_utils/test_common.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/test_constants.hpp b/src/tests/ie_test_utils/common_test_utils/test_constants.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/test_constants.hpp rename to src/tests/ie_test_utils/common_test_utils/test_constants.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/unicode_utils.cpp b/src/tests/ie_test_utils/common_test_utils/unicode_utils.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/unicode_utils.cpp rename to src/tests/ie_test_utils/common_test_utils/unicode_utils.cpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/unicode_utils.hpp b/src/tests/ie_test_utils/common_test_utils/unicode_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/unicode_utils.hpp rename to src/tests/ie_test_utils/common_test_utils/unicode_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/w_dirent.h b/src/tests/ie_test_utils/common_test_utils/w_dirent.h similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/w_dirent.h rename to src/tests/ie_test_utils/common_test_utils/w_dirent.h diff --git a/inference-engine/tests/ie_test_utils/common_test_utils/xml_net_builder/xml_filler.hpp b/src/tests/ie_test_utils/common_test_utils/xml_net_builder/xml_filler.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/common_test_utils/xml_net_builder/xml_filler.hpp rename to src/tests/ie_test_utils/common_test_utils/xml_net_builder/xml_filler.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/CMakeLists.txt b/src/tests/ie_test_utils/functional_test_utils/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/CMakeLists.txt rename to src/tests/ie_test_utils/functional_test_utils/CMakeLists.txt diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/blob_utils.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/blob_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/blob_utils.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/blob_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/core_config.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/core_config.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/core_config.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/core_config.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/environment.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/environment.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/environment.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/environment.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/op_info.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/op_info.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/op_info.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/op_info.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/summary.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/summary.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/summary.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/layer_test_utils/summary.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_plugin_cache.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_plugin_cache.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_plugin_cache.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_plugin_cache.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_tensor_utils.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_tensor_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_tensor_utils.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/ov_tensor_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/plugin_cache.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/plugin_cache.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/plugin_cache.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/plugin_cache.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/precision_utils.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/precision_utils.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/precision_utils.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/precision_utils.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/skip_tests_config.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/skip_tests_config.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/skip_tests_config.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/skip_tests_config.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/test_model/test_model.hpp b/src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/test_model/test_model.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/test_model/test_model.hpp rename to src/tests/ie_test_utils/functional_test_utils/include/functional_test_utils/test_model/test_model.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/__init__.py b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/__init__.py similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/__init__.py rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/__init__.py diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/merge_xmls.py b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/merge_xmls.py similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/merge_xmls.py rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/merge_xmls.py diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/requirements.txt b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/requirements.txt similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/requirements.txt rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/requirements.txt diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/summarize.py b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/summarize.py similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/summarize.py rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/summarize.py diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/chosen.jquery.min.js b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/chosen.jquery.min.js similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/chosen.jquery.min.js rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/chosen.jquery.min.js diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/filters.js b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/filters.js similarity index 92% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/filters.js rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/filters.js index 6005190e7cc..beb86e1b65f 100644 --- a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/filters.js +++ b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/filters.js @@ -99,15 +99,15 @@ function filterTable() { if (implementation != 0) { if (implementation == 'ni') { $("#report #data tr:not(:hidden)").filter(function () { - $(this).toggle($(this).find('td').hasClass("not_impl")) + $(this).toggle($(this).find('td').hasClass("value " + device + " not_impl")) }); } else if (implementation == 'i') { $("#report #data tr:not(:hidden)").filter(function () { - $(this).toggle($(this).find('td').hasClass("impl")); + $(this).toggle($(this).find('td').hasClass("value " + device + " impl")); }); } else { $("#report #data tr:not(:hidden)").filter(function () { - $(this).toggle(!$(this).find('td').hasClass("not_impl") && !$(this).find('td').hasClass("impl")); + $(this).toggle(!$(this).find('td').hasClass("value")); }); } } @@ -116,19 +116,19 @@ function filterTable() { selector = []; select.forEach(item => { if (item == '100p') { - selector.push('.value:visible[crashed="0"][failed="0"][skipped="0"]'); + selector.push('.value:visible[crashed="0"][failed="0"][skipped="0"][value!="---"]'); } if (item == '100f') { - selector.push('.value:visible[passed="0"]'); + selector.push('.value:visible[passed="0"][value!="---"]'); } if (item == 'p') { - selector.push('.value:visible[passed!="0"]'); + selector.push('.value:visible[passed!="0"][value!="---"]'); } if (item == 'f') { - selector.push('.value:visible[failed!="0"]'); + selector.push('.value:visible[failed!="0"][value!="---"]'); } if (item == 'c') { - selector.push('.value:visible[crashed!="0"]'); + selector.push('.value:visible[crashed!="0"][value!="---"]'); } if (item == 's') { selector.push('.value:visible[value!="---"][skipped!="0"]'); diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/report_template.html b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/report_template.html similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/report_template.html rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/report_template.html diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/style.css b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/style.css similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/style.css rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/template/style.css diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/__init__.py b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/__init__.py similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/__init__.py rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/__init__.py diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/update_skip_test_config.py b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/update_skip_test_config.py similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/update_skip_test_config.py rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/update_skip_test_config.py diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/utils.py b/src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/utils.py similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/utils.py rename to src/tests/ie_test_utils/functional_test_utils/layer_tests_summary/utils/utils.py diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/src/layer_test_utils/summary.cpp b/src/tests/ie_test_utils/functional_test_utils/src/layer_test_utils/summary.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/src/layer_test_utils/summary.cpp rename to src/tests/ie_test_utils/functional_test_utils/src/layer_test_utils/summary.cpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/src/ov_plugin_cache.cpp b/src/tests/ie_test_utils/functional_test_utils/src/ov_plugin_cache.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/src/ov_plugin_cache.cpp rename to src/tests/ie_test_utils/functional_test_utils/src/ov_plugin_cache.cpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/src/ov_tensor_utils.cpp b/src/tests/ie_test_utils/functional_test_utils/src/ov_tensor_utils.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/src/ov_tensor_utils.cpp rename to src/tests/ie_test_utils/functional_test_utils/src/ov_tensor_utils.cpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/src/plugin_cache.cpp b/src/tests/ie_test_utils/functional_test_utils/src/plugin_cache.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/src/plugin_cache.cpp rename to src/tests/ie_test_utils/functional_test_utils/src/plugin_cache.cpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/src/precomp.hpp b/src/tests/ie_test_utils/functional_test_utils/src/precomp.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/src/precomp.hpp rename to src/tests/ie_test_utils/functional_test_utils/src/precomp.hpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/src/skip_tests_config.cpp b/src/tests/ie_test_utils/functional_test_utils/src/skip_tests_config.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/src/skip_tests_config.cpp rename to src/tests/ie_test_utils/functional_test_utils/src/skip_tests_config.cpp diff --git a/inference-engine/tests/ie_test_utils/functional_test_utils/src/test_model/test_model.cpp b/src/tests/ie_test_utils/functional_test_utils/src/test_model/test_model.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/functional_test_utils/src/test_model/test_model.cpp rename to src/tests/ie_test_utils/functional_test_utils/src/test_model/test_model.cpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/CMakeLists.txt b/src/tests/ie_test_utils/unit_test_utils/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/CMakeLists.txt rename to src/tests/ie_test_utils/unit_test_utils/CMakeLists.txt diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mock.cpp b/src/tests/ie_test_utils/unit_test_utils/mock.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mock.cpp rename to src/tests/ie_test_utils/unit_test_utils/mock.cpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_async_infer_request_default.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_async_infer_request_default.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_async_infer_request_default.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_async_infer_request_default.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_executable_thread_safe_default.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_executable_thread_safe_default.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_executable_thread_safe_default.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_executable_thread_safe_default.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_inference_plugin_internal.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_inference_plugin_internal.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_inference_plugin_internal.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/impl/mock_inference_plugin_internal.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_icore.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_icore.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_icore.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_icore.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iexecutable_network_internal.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iexecutable_network_internal.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iexecutable_network_internal.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iexecutable_network_internal.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinfer_request_internal.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinfer_request_internal.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinfer_request_internal.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinfer_request_internal.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinference_plugin.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinference_plugin.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinference_plugin.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_iinference_plugin.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_ivariable_state_internal.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_ivariable_state_internal.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_ivariable_state_internal.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/interface/mock_ivariable_state_internal.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/mock_task_executor.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/mock_task_executor.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/mock_task_executor.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/cpp_interfaces/mock_task_executor.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_allocator.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_allocator.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_allocator.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_allocator.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/CMakeLists.txt b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/CMakeLists.txt rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/CMakeLists.txt diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/dllmain.cpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/dllmain.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/dllmain.cpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/dllmain.cpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.cpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.cpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.cpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.cpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_engine/mock_plugin.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_icnn_network.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_icnn_network.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_icnn_network.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_icnn_network.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_iexecutable_network.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_iexecutable_network.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_iexecutable_network.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_iexecutable_network.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_iinfer_request.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_iinfer_request.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_iinfer_request.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_iinfer_request.hpp diff --git a/inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_not_empty_icnn_network.hpp b/src/tests/ie_test_utils/unit_test_utils/mocks/mock_not_empty_icnn_network.hpp similarity index 100% rename from inference-engine/tests/ie_test_utils/unit_test_utils/mocks/mock_not_empty_icnn_network.hpp rename to src/tests/ie_test_utils/unit_test_utils/mocks/mock_not_empty_icnn_network.hpp diff --git a/inference-engine/tests/ie_tsan.supp b/src/tests/ie_tsan.supp similarity index 100% rename from inference-engine/tests/ie_tsan.supp rename to src/tests/ie_tsan.supp diff --git a/inference-engine/tests/ngraph_helpers/CMakeLists.txt b/src/tests/ngraph_helpers/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ngraph_helpers/CMakeLists.txt rename to src/tests/ngraph_helpers/CMakeLists.txt diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/CMakeLists.txt b/src/tests/ngraph_helpers/lpt_ngraph_functions/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/CMakeLists.txt rename to src/tests/ngraph_helpers/lpt_ngraph_functions/CMakeLists.txt diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/add_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/add_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/add_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/add_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/align_concat_quantization_parameters_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/align_concat_quantization_parameters_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/align_concat_quantization_parameters_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/align_concat_quantization_parameters_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/avg_pool_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/avg_pool_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/avg_pool_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/avg_pool_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/clamp_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/clamp_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/clamp_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/clamp_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/add.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/add.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/add.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/add.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/builders.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/builders.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/builders.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/builders.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/constant.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/constant.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/constant.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/constant.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/dequantization_operations.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/dequantization_operations.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/dequantization_operations.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/dequantization_operations.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_data.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_data.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_data.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_data.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_weights.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_weights.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_weights.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/fake_quantize_on_weights.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/multiply.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/multiply.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/multiply.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/multiply.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/reshape.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/reshape.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/reshape.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/reshape.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/transpose.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/transpose.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/transpose.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/common/transpose.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/compose_fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/compose_fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/compose_fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/compose_fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/concat_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/concat_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/concat_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/concat_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_backprop_data_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_backprop_data_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_backprop_data_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_backprop_data_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/convolution_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/depth_to_space_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/depth_to_space_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/depth_to_space_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/depth_to_space_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/elementwise_with_multi_parent_dequantization_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/elementwise_with_multi_parent_dequantization_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/elementwise_with_multi_parent_dequantization_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/elementwise_with_multi_parent_dequantization_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_convolution_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_convolution_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_convolution_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_convolution_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_two_output_branches_with_convolution_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_two_output_branches_with_convolution_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_two_output_branches_with_convolution_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_and_two_output_branches_with_convolution_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_on_weights_and_unsupported_child_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_on_weights_and_unsupported_child_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_on_weights_and_unsupported_child_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_on_weights_and_unsupported_child_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_precision_selection_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_precision_selection_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_precision_selection_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fake_quantize_precision_selection_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fold_fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fold_fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fold_fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fold_fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_convert_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_convert_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_convert_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_convert_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_and_scale_shift_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_and_scale_shift_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_and_scale_shift_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_and_scale_shift_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_multiply_to_fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_multiply_to_fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_multiply_to_fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_multiply_to_fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_subtract_to_fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_subtract_to_fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_subtract_to_fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/fuse_subtract_to_fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/get_dequantization_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/get_dequantization_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/get_dequantization_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/get_dequantization_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/group_convolution_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/group_convolution_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/group_convolution_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/group_convolution_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/interpolate_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/interpolate_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/interpolate_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/interpolate_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/markup_avg_pool_precisions_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/markup_avg_pool_precisions_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/markup_avg_pool_precisions_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/markup_avg_pool_precisions_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_with_optimized_constant_fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_with_optimized_constant_fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_with_optimized_constant_fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mat_mul_with_optimized_constant_fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/max_pool_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/max_pool_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/max_pool_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/max_pool_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_dequantization_after_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_dequantization_after_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_dequantization_after_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_dequantization_after_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_fake_quantize_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_fake_quantize_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_fake_quantize_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/move_fake_quantize_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mul_add_to_scaleshift_or_power_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mul_add_to_scaleshift_or_power_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mul_add_to_scaleshift_or_power_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mul_add_to_scaleshift_or_power_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_to_group_convolution_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_to_group_convolution_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_to_group_convolution_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_to_group_convolution_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_with_one_parent_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_with_one_parent_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_with_one_parent_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/multiply_with_one_parent_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mvn_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mvn_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mvn_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/mvn_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_dequantization_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_dequantization_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_dequantization_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_dequantization_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_l2_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_l2_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_l2_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/normalize_l2_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/pad_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/pad_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/pad_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/pad_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/precision_propagation_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/precision_propagation_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/precision_propagation_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/precision_propagation_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/prelu_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/prelu_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/prelu_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/prelu_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reduce_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reduce_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reduce_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reduce_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/relu_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/relu_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/relu_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/relu_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reshape_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reshape_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reshape_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/reshape_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/round_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/round_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/round_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/round_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/shuffle_channels_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/shuffle_channels_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/shuffle_channels_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/shuffle_channels_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/split_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/split_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/split_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/split_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/squeeze_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/squeeze_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/squeeze_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/squeeze_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/strided_slice_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/strided_slice_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/strided_slice_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/strided_slice_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_multiply_to_multiply_add_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_multiply_to_multiply_add_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_multiply_to_multiply_add_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/subtract_multiply_to_multiply_add_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transformations_after_split_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transformations_after_split_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transformations_after_split_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transformations_after_split_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_after_mat_mul_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_after_mat_mul_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_after_mat_mul_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_after_mat_mul_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/transpose_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/unsqueeze_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/unsqueeze_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/unsqueeze_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/unsqueeze_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/variadic_split_function.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/variadic_split_function.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/variadic_split_function.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/include/lpt_ngraph_functions/variadic_split_function.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/add_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/add_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/add_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/add_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/align_concat_quantization_parameters_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/align_concat_quantization_parameters_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/align_concat_quantization_parameters_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/align_concat_quantization_parameters_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/avg_pool_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/avg_pool_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/avg_pool_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/avg_pool_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/clamp_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/clamp_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/clamp_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/clamp_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/add.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/add.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/add.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/add.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/builders.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/builders.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/builders.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/builders.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/constant.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/constant.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/constant.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/constant.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/dequantization_operations.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/dequantization_operations.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/dequantization_operations.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/dequantization_operations.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_data.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_data.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_data.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_data.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_weights.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_weights.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_weights.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/fake_quantize_on_weights.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/multiply.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/multiply.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/multiply.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/multiply.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/reshape.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/reshape.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/reshape.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/reshape.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/transpose.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/transpose.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/common/transpose.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/common/transpose.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/compose_fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/compose_fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/compose_fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/compose_fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/concat_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/concat_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/concat_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/concat_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_backprop_data_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_backprop_data_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_backprop_data_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_backprop_data_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/convolution_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/depth_to_space_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/depth_to_space_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/depth_to_space_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/depth_to_space_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/elementwise_with_multi_parent_dequantization_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/elementwise_with_multi_parent_dequantization_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/elementwise_with_multi_parent_dequantization_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/elementwise_with_multi_parent_dequantization_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_convolution_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_convolution_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_convolution_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_convolution_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_two_output_branches_with_convolution_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_two_output_branches_with_convolution_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_two_output_branches_with_convolution_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_and_two_output_branches_with_convolution_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_on_weights_and_unsupported_child_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_on_weights_and_unsupported_child_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_on_weights_and_unsupported_child_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_on_weights_and_unsupported_child_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_precision_selection_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_precision_selection_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_precision_selection_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fake_quantize_precision_selection_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fold_fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fold_fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fold_fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fold_fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_convert_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_convert_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_convert_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_convert_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_and_scale_shift_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_and_scale_shift_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_and_scale_shift_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_and_scale_shift_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_multiply_to_fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_multiply_to_fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_multiply_to_fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_multiply_to_fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_subtract_to_fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_subtract_to_fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_subtract_to_fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/fuse_subtract_to_fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/get_dequantization_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/get_dequantization_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/get_dequantization_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/get_dequantization_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/group_convolution_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/group_convolution_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/group_convolution_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/group_convolution_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/interpolate_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/interpolate_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/interpolate_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/interpolate_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/markup_avg_pool_precisions_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/markup_avg_pool_precisions_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/markup_avg_pool_precisions_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/markup_avg_pool_precisions_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_with_optimized_constant_fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_with_optimized_constant_fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_with_optimized_constant_fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/mat_mul_with_optimized_constant_fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/max_pool_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/max_pool_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/max_pool_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/max_pool_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/move_dequantization_after_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/move_dequantization_after_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/move_dequantization_after_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/move_dequantization_after_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/move_fake_quantize_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/move_fake_quantize_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/move_fake_quantize_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/move_fake_quantize_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_to_group_convolution_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_to_group_convolution_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_to_group_convolution_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_to_group_convolution_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_with_one_parent_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_with_one_parent_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_with_one_parent_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/multiply_with_one_parent_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/mvn_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/mvn_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/mvn_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/mvn_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_dequantization_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_dequantization_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_dequantization_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_dequantization_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_l2_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_l2_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_l2_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/normalize_l2_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/pad_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/pad_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/pad_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/pad_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/precision_propagation_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/precision_propagation_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/precision_propagation_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/precision_propagation_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/precomp.hpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/precomp.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/precomp.hpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/precomp.hpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/prelu_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/prelu_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/prelu_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/prelu_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/relu_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/relu_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/relu_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/relu_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/reshape_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/reshape_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/reshape_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/reshape_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/round_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/round_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/round_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/round_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/shuffle_channels_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/shuffle_channels_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/shuffle_channels_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/shuffle_channels_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/split_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/split_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/split_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/split_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/squeeze_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/squeeze_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/squeeze_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/squeeze_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/strided_slice_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/strided_slice_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/strided_slice_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/strided_slice_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_multiply_to_multiply_add_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_multiply_to_multiply_add_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_multiply_to_multiply_add_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/subtract_multiply_to_multiply_add_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/transformations_after_split_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/transformations_after_split_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/transformations_after_split_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/transformations_after_split_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_after_mat_mul_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_after_mat_mul_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_after_mat_mul_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_after_mat_mul_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/transpose_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/unsqueeze_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/unsqueeze_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/unsqueeze_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/unsqueeze_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/variadic_split_function.cpp b/src/tests/ngraph_helpers/lpt_ngraph_functions/src/variadic_split_function.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/lpt_ngraph_functions/src/variadic_split_function.cpp rename to src/tests/ngraph_helpers/lpt_ngraph_functions/src/variadic_split_function.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/CMakeLists.txt b/src/tests/ngraph_helpers/ngraph_functions/CMakeLists.txt similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/CMakeLists.txt rename to src/tests/ngraph_helpers/ngraph_functions/CMakeLists.txt diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/builders.hpp b/src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/builders.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/builders.hpp rename to src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/builders.hpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/pass/convert_prc.hpp b/src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/pass/convert_prc.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/pass/convert_prc.hpp rename to src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/pass/convert_prc.hpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/preprocess/preprocess_builders.hpp b/src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/preprocess/preprocess_builders.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/preprocess/preprocess_builders.hpp rename to src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/preprocess/preprocess_builders.hpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/subgraph_builders.hpp b/src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/subgraph_builders.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/subgraph_builders.hpp rename to src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/subgraph_builders.hpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/data_utils.hpp b/src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/data_utils.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/data_utils.hpp rename to src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/data_utils.hpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/ngraph_helpers.hpp b/src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/ngraph_helpers.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/ngraph_helpers.hpp rename to src/tests/ngraph_helpers/ngraph_functions/include/ngraph_functions/utils/ngraph_helpers.hpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/activation.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/activation.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/activation.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/activation.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/batch_norm.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/batch_norm.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/batch_norm.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/batch_norm.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/batch_to_space.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/batch_to_space.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/batch_to_space.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/batch_to_space.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/binary_convolution.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/binary_convolution.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/binary_convolution.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/binary_convolution.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/broadcast.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/broadcast.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/broadcast.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/broadcast.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/comparison.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/comparison.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/comparison.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/comparison.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/concat.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/concat.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/concat.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/concat.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/conversion.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/conversion.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/conversion.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/conversion.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/convolution.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/convolution.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/convolution.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/convolution.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/convolution_backprop_data.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/convolution_backprop_data.cpp similarity index 94% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/convolution_backprop_data.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/convolution_backprop_data.cpp index 91d6c0fc085..0280895ba88 100644 --- a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/convolution_backprop_data.cpp +++ b/src/tests/ngraph_helpers/ngraph_functions/src/convolution_backprop_data.cpp @@ -24,8 +24,8 @@ std::shared_ptr makeConvolutionBackpropData(const ngraph::Output &in const std::vector &filterWeights, const std::vector &biasesWeights) { bool randomFilterWeights = filterWeights.empty(); - auto shape = in.get_shape(); - std::vector filterWeightsShape = {shape[1], numOutChannels}; + auto shape = in.get_partial_shape(); + std::vector filterWeightsShape = {static_cast(shape[1].get_length()), numOutChannels}; filterWeightsShape.insert(filterWeightsShape.end(), filterSize.begin(), filterSize.end()); auto filterWeightsNode = makeConstant(type, filterWeightsShape, filterWeights, randomFilterWeights); @@ -74,8 +74,8 @@ std::shared_ptr makeConvolutionBackpropData(const ngraph::Output &in const std::vector &filterWeights, const std::vector &biasesWeights) { bool randomFilterWeights = filterWeights.empty(); - auto shape = in.get_shape(); - std::vector filterWeightsShape = {shape[1], numOutChannels}; + auto shape = in.get_partial_shape(); + std::vector filterWeightsShape = {static_cast(shape[1].get_length()), numOutChannels}; filterWeightsShape.insert(filterWeightsShape.end(), filterSize.begin(), filterSize.end()); auto filterWeightsNode = makeConstant(type, filterWeightsShape, filterWeights, randomFilterWeights); diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder_seq_len.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder_seq_len.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder_seq_len.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/ctc_greedy_decoder_seq_len.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/ctc_loss.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/ctc_loss.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/ctc_loss.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/ctc_loss.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/cum_sum.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/cum_sum.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/cum_sum.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/cum_sum.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/depth_to_space.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/depth_to_space.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/depth_to_space.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/depth_to_space.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/detection_output.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/detection_output.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/detection_output.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/detection_output.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/dft.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/dft.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/dft.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/dft.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/eltwise.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/eltwise.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/eltwise.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/eltwise.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_offsets_sum.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_offsets_sum.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_offsets_sum.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_offsets_sum.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_packed_sum.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_packed_sum.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_packed_sum.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/embedding_bag_packed_sum.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/embedding_segments_sum.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/embedding_segments_sum.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/embedding_segments_sum.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/embedding_segments_sum.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/fake_quantize.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/fake_quantize.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/fake_quantize.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/fake_quantize.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/fully_connected.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/fully_connected.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/fully_connected.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/fully_connected.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/gather_elements.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/gather_elements.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/gather_elements.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/gather_elements.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/gather_nd.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/gather_nd.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/gather_nd.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/gather_nd.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/group_convolution.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/group_convolution.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/group_convolution.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/group_convolution.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/group_convolution_backprop_data.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/group_convolution_backprop_data.cpp similarity index 95% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/group_convolution_backprop_data.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/group_convolution_backprop_data.cpp index 84c141f8a20..e7642633e92 100644 --- a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/group_convolution_backprop_data.cpp +++ b/src/tests/ngraph_helpers/ngraph_functions/src/group_convolution_backprop_data.cpp @@ -25,8 +25,8 @@ std::shared_ptr makeGroupConvolutionBackpropData(const ngraph::Output &filterWeights, const std::vector &biasesWeights) { bool randomFilterWeights = filterWeights.empty(); - auto shape = in.get_shape(); - std::vector filterWeightsShape = {shape[1], numOutChannels}; + auto shape = in.get_partial_shape(); + std::vector filterWeightsShape = {static_cast(shape[1].get_length()), numOutChannels}; if (filterWeightsShape[0] % numGroups || filterWeightsShape[1] % numGroups) throw std::runtime_error("incorrect shape for GroupConvolutionBackpropData"); filterWeightsShape[0] /= numGroups; @@ -81,8 +81,8 @@ std::shared_ptr makeGroupConvolutionBackpropData(const ngraph::Output &filterWeights, const std::vector &biasesWeights) { bool randomFilterWeights = filterWeights.empty(); - auto shape = in.get_shape(); - std::vector filterWeightsShape = {shape[1], numOutChannels}; + auto shape = in.get_partial_shape(); + std::vector filterWeightsShape = {static_cast(shape[1].get_length()), numOutChannels}; if (filterWeightsShape[0] % numGroups || filterWeightsShape[1] % numGroups) throw std::runtime_error("incorrect shape for GroupConvolutionBackpropData"); filterWeightsShape[0] /= numGroups; diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/gru_cell.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/gru_cell.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/gru_cell.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/gru_cell.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/input_layer.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/input_layer.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/input_layer.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/input_layer.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/logical.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/logical.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/logical.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/logical.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/lstm_cell.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/lstm_cell.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/lstm_cell.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/lstm_cell.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/mat_mul.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/mat_mul.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/mat_mul.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/mat_mul.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/minimum_maximum.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/minimum_maximum.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/minimum_maximum.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/minimum_maximum.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/mvn.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/mvn.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/mvn.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/mvn.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/non_max_suppression.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/non_max_suppression.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/non_max_suppression.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/non_max_suppression.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/normalize_l2.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/normalize_l2.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/normalize_l2.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/normalize_l2.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/one_hot.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/one_hot.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/one_hot.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/one_hot.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/pad.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/pad.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/pad.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/pad.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/params_vector.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/params_vector.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/params_vector.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/params_vector.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/pooling.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/pooling.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/pooling.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/pooling.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/precomp.hpp b/src/tests/ngraph_helpers/ngraph_functions/src/precomp.hpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/precomp.hpp rename to src/tests/ngraph_helpers/ngraph_functions/src/precomp.hpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/proposal.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/proposal.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/proposal.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/proposal.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/reduce.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/reduce.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/reduce.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/reduce.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/rnn_cell.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/rnn_cell.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/rnn_cell.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/rnn_cell.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/roi_pooling.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/roi_pooling.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/roi_pooling.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/roi_pooling.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/roll.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/roll.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/roll.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/roll.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/scatter_ND_update.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/scatter_ND_update.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/scatter_ND_update.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/scatter_ND_update.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/scatter_elements_update.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/scatter_elements_update.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/scatter_elements_update.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/scatter_elements_update.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/scatter_update.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/scatter_update.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/scatter_update.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/scatter_update.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/select.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/select.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/select.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/select.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/shuffle_channels.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/shuffle_channels.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/shuffle_channels.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/shuffle_channels.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/space_to_batch.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/space_to_batch.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/space_to_batch.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/space_to_batch.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/space_to_depth.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/space_to_depth.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/space_to_depth.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/space_to_depth.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/split.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/split.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/split.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/split.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/squeeze_unsqueeze.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/squeeze_unsqueeze.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/squeeze_unsqueeze.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/squeeze_unsqueeze.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/strided_slice.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/strided_slice.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/strided_slice.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/strided_slice.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/tile.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/tile.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/tile.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/tile.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/utils/ngraph_helpers.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/utils/ngraph_helpers.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/utils/ngraph_helpers.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/utils/ngraph_helpers.cpp diff --git a/inference-engine/tests/ngraph_helpers/ngraph_functions/src/variadic_split.cpp b/src/tests/ngraph_helpers/ngraph_functions/src/variadic_split.cpp similarity index 100% rename from inference-engine/tests/ngraph_helpers/ngraph_functions/src/variadic_split.cpp rename to src/tests/ngraph_helpers/ngraph_functions/src/variadic_split.cpp diff --git a/inference-engine/tests/unit/CMakeLists.txt b/src/tests/unit/CMakeLists.txt similarity index 100% rename from inference-engine/tests/unit/CMakeLists.txt rename to src/tests/unit/CMakeLists.txt diff --git a/inference-engine/tests/unit/auto/CMakeLists.txt b/src/tests/unit/auto/CMakeLists.txt similarity index 100% rename from inference-engine/tests/unit/auto/CMakeLists.txt rename to src/tests/unit/auto/CMakeLists.txt diff --git a/inference-engine/tests/unit/auto/auto_select_device_failed_test.cpp b/src/tests/unit/auto/auto_select_device_failed_test.cpp similarity index 98% rename from inference-engine/tests/unit/auto/auto_select_device_failed_test.cpp rename to src/tests/unit/auto/auto_select_device_failed_test.cpp index 8925c63c301..51ade26194a 100644 --- a/inference-engine/tests/unit/auto/auto_select_device_failed_test.cpp +++ b/src/tests/unit/auto/auto_select_device_failed_test.cpp @@ -207,7 +207,7 @@ TEST_P(AutoLoadFailedTest, LoadCNNetWork) { // set the return value of SelectDevice // for example if there are three device, if will return GPU on the first call, and then MYRIAD // at last CPU - ON_CALL(*plugin, SelectDevice(Property(&std::vector::size, Eq(selDevsSize)), _)) + ON_CALL(*plugin, SelectDevice(Property(&std::vector::size, Eq(selDevsSize)), _, _)) .WillByDefault(Return(metaDevices[deviceConfigs.size() - selDevsSize])); devicesStr += deviceName; devicesStr += ((++iter) == deviceConfigs.end()) ? "" : ","; @@ -219,16 +219,16 @@ TEST_P(AutoLoadFailedTest, LoadCNNetWork) { if (thrExcWheSelect) { selDevsSize = deviceConfigs.size(); if (selDevsSize > 1) { - ON_CALL(*plugin, SelectDevice(Property(&std::vector::size, Eq(selDevsSize - 1)), _)) + ON_CALL(*plugin, SelectDevice(Property(&std::vector::size, Eq(selDevsSize - 1)), _, _)) .WillByDefault(Throw(InferenceEngine::GeneralError{""})); } else { - ON_CALL(*plugin, SelectDevice(Property(&std::vector::size, Eq(1)), _)) + ON_CALL(*plugin, SelectDevice(Property(&std::vector::size, Eq(1)), _, _)) .WillByDefault(Throw(InferenceEngine::GeneralError{""})); } } EXPECT_CALL(*plugin, ParseMetaDevices(_, _)).Times(AtLeast(1)); - EXPECT_CALL(*plugin, SelectDevice(_, _)).Times(selectCount); + EXPECT_CALL(*plugin, SelectDevice(_, _, _)).Times(selectCount); EXPECT_CALL(*core, LoadNetwork(::testing::Matcher(_), ::testing::Matcher(_), ::testing::Matcher(_))).Times(loadCount); diff --git a/inference-engine/tests/unit/auto/exec_network_get_metrics.cpp b/src/tests/unit/auto/exec_network_get_metrics.cpp similarity index 100% rename from inference-engine/tests/unit/auto/exec_network_get_metrics.cpp rename to src/tests/unit/auto/exec_network_get_metrics.cpp diff --git a/src/tests/unit/auto/key_network_priority_test.cpp b/src/tests/unit/auto/key_network_priority_test.cpp new file mode 100644 index 00000000000..2410ba52d72 --- /dev/null +++ b/src/tests/unit/auto/key_network_priority_test.cpp @@ -0,0 +1,241 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_icore.hpp" +#include "unit_test_utils/mocks/mock_iinfer_request.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/impl/mock_inference_plugin_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_iexecutable_network_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_ivariable_state_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_iinference_plugin.hpp" +#include +#include +#include +#include +#include +#include "plugin/mock_auto_device_plugin.hpp" +#include "cpp/ie_plugin.hpp" +#include "mock_common.hpp" + +using ::testing::MatcherCast; +using ::testing::AllOf; +using ::testing::Throw; +using ::testing::Matches; +using ::testing::_; +using ::testing::StrEq; +using ::testing::Return; +using ::testing::Property; +using ::testing::Eq; +using ::testing::ReturnRef; +using ::testing::AtLeast; +using ::testing::InvokeWithoutArgs; +using Config = std::map; +using namespace MockMultiDevice; + +using PriorityParams = std::tuple; //{priority, deviceUniquName} + +using ConfigParams = std::tuple< + std::string, // netPrecision + std::vector // {{priority, expect device uniqueName}} + >; +class KeyNetworkPriorityTest : public ::testing::TestWithParam { +public: + std::shared_ptr core; + std::shared_ptr plugin; + std::vector metaDevices; + +public: + static std::string getTestCaseName(testing::TestParamInfo obj) { + std::string netPrecision; + std::vector PriorityConfigs; + std::tie(netPrecision, PriorityConfigs) = obj.param; + std::ostringstream result; + for (auto& item : PriorityConfigs) { + result << "_priority_" << std::get<0>(item); + result << "_return_" << std::get<1>(item); + } + result << "netPrecision_" << netPrecision; + return result.str(); + } + + void TearDown() override { + core.reset(); + plugin.reset(); + metaDevices.clear(); + } + + void SetUp() override { + // prepare mockicore and cnnNetwork for loading + core = std::shared_ptr(new MockICore()); + auto* origin_plugin = new MockMultiDeviceInferencePlugin(); + plugin = std::shared_ptr(origin_plugin); + // replace core with mock Icore + plugin->SetCore(core); + metaDevices = {{CommonTestUtils::DEVICE_CPU, {}, 2, "", "CPU_01"}, + {CommonTestUtils::DEVICE_GPU, {}, 2, "01", "iGPU_01"}, + {CommonTestUtils::DEVICE_GPU, {}, 2, "01", "dGPU_01"}, + {CommonTestUtils::DEVICE_MYRIAD, {}, 2, "01", "MYRIAD_01" }, + {CommonTestUtils::DEVICE_KEEMBAY, {}, 2, "01", "VPUX_01"}}; + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, cpuCability, {"FP32", "FP16", "INT8", "BIN"}); + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, gpuCability, {"FP32", "FP16", "BATCHED_BLOB", "BIN"}); + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, myriadCability, {"FP16"}); + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, vpuxCability, {"INT8"}); + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_CPU), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(cpuCability)); + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_GPU), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(gpuCability)); + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_MYRIAD), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(myriadCability)); + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_KEEMBAY), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(vpuxCability)); + ON_CALL(*plugin, SelectDevice).WillByDefault([this](const std::vector& metaDevices, + const std::string& netPrecision, unsigned int Priority) { + return plugin->MultiDeviceInferencePlugin::SelectDevice(metaDevices, netPrecision, Priority); + }); + } +}; + +TEST_P(KeyNetworkPriorityTest, SelectDevice) { + // get Parameter + std::string netPrecision; + std::vector PriorityConfigs; + std::tie(netPrecision, PriorityConfigs) = this->GetParam(); + std::vector resDevInfo; + + EXPECT_CALL(*plugin, SelectDevice(_, _, _)).Times(PriorityConfigs.size()); + EXPECT_CALL(*core, GetMetric(_, _, _)).Times(AtLeast(PriorityConfigs.size() * 4)); + + for (auto& item : PriorityConfigs) { + resDevInfo.push_back(plugin->SelectDevice(metaDevices, netPrecision, std::get<0>(item))); + } + for (unsigned int i = 0; i < PriorityConfigs.size(); i++) { + EXPECT_EQ(resDevInfo[i].uniqueName, std::get<1>(PriorityConfigs[i])); + plugin->UnregisterPriority(std::get<0>(PriorityConfigs[i]), std::get<1>(PriorityConfigs[i])); + } +} + +TEST_P(KeyNetworkPriorityTest, MultiThreadsSelectDevice) { + // get Parameter + std::string netPrecision; + std::vector PriorityConfigs; + std::tie(netPrecision, PriorityConfigs) = this->GetParam(); + std::vector resDevInfo; + std::vector> futureVect; + + EXPECT_CALL(*plugin, SelectDevice(_, _, _)).Times(PriorityConfigs.size() * 2); + EXPECT_CALL(*core, GetMetric(_, _, _)).Times(AtLeast(PriorityConfigs.size() * 4 * 2)); + // selectdevice in multi threads, and UnregisterPriority them all, should not affect the + // Priority Map + for (auto& item : PriorityConfigs) { + unsigned int priority = std::get<0>(item); + auto future = std::async(std::launch::async, [this, &netPrecision, priority] { + auto deviceInfo = plugin->SelectDevice(metaDevices, netPrecision, priority); + plugin->UnregisterPriority(priority, deviceInfo.uniqueName); + }); + futureVect.push_back(std::move(future)); + } + + for (auto& item : futureVect) { + item.get(); + } + + for (auto& item : PriorityConfigs) { + resDevInfo.push_back(plugin->SelectDevice(metaDevices, netPrecision, std::get<0>(item))); + } + for (unsigned int i = 0; i < PriorityConfigs.size(); i++) { + EXPECT_EQ(resDevInfo[i].uniqueName, std::get<1>(PriorityConfigs[i])); + plugin->UnregisterPriority(std::get<0>(PriorityConfigs[i]), std::get<1>(PriorityConfigs[i])); + } +} + + +// ConfigParams details +// example +// ConfigParams {"FP32", {PriorityParams {0, "dGPU_01"}, +// PriorityParams {1, "iGPU_01"}, +// PriorityParams {2, "MYRIAD_01"}, +// PriorityParams {2, "MYRIAD_01"}}}, +// {netPrecision, PriorityParamsVector{{priority, expect device uniqueName}}} + +const std::vector testConfigs = { + ConfigParams {"FP32", {PriorityParams {0, "dGPU_01"}, + PriorityParams {1, "iGPU_01"}, + PriorityParams {2, "MYRIAD_01"}, + PriorityParams {2, "MYRIAD_01"}}}, + ConfigParams {"FP32", {PriorityParams {2, "dGPU_01"}, + PriorityParams {3, "iGPU_01"}, + PriorityParams {4, "MYRIAD_01"}, + PriorityParams {5, "CPU_01"}}}, + ConfigParams {"FP32", {PriorityParams {2, "dGPU_01"}, + PriorityParams {0, "dGPU_01"}, + PriorityParams {2, "iGPU_01"}, + PriorityParams {2, "iGPU_01"}}}, + ConfigParams {"FP32", {PriorityParams {2, "dGPU_01"}, + PriorityParams {0, "dGPU_01"}, + PriorityParams {2, "iGPU_01"}, + PriorityParams {3, "MYRIAD_01"}}}, + ConfigParams {"FP32", {PriorityParams {0, "dGPU_01"}, + PriorityParams {1, "iGPU_01"}, + PriorityParams {2, "MYRIAD_01"}, + PriorityParams {3, "CPU_01"}, + PriorityParams {0, "dGPU_01"}, + PriorityParams {1, "iGPU_01"}, + PriorityParams {2, "MYRIAD_01"}, + PriorityParams {3, "CPU_01"}}}, + ConfigParams {"INT8", {PriorityParams {0, "VPUX_01"}, + PriorityParams {1, "CPU_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {2, "CPU_01"}}}, + ConfigParams {"INT8", {PriorityParams {2, "VPUX_01"}, + PriorityParams {3, "CPU_01"}, + PriorityParams {4, "CPU_01"}, + PriorityParams {5, "CPU_01"}}}, + ConfigParams {"INT8", {PriorityParams {2, "VPUX_01"}, + PriorityParams {0, "VPUX_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {2, "CPU_01"}}}, + ConfigParams {"INT8", {PriorityParams {2, "VPUX_01"}, + PriorityParams {0, "VPUX_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {3, "CPU_01"}}}, + ConfigParams {"INT8", {PriorityParams {0, "VPUX_01"}, + PriorityParams {1, "CPU_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {3, "CPU_01"}, + PriorityParams {0, "VPUX_01"}, + PriorityParams {1, "CPU_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {3, "CPU_01"}}}, + ConfigParams {"BIN", {PriorityParams {0, "dGPU_01"}, + PriorityParams {1, "iGPU_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {2, "CPU_01"}}}, + ConfigParams {"BIN", {PriorityParams {2, "dGPU_01"}, + PriorityParams {3, "iGPU_01"}, + PriorityParams {4, "CPU_01"}, + PriorityParams {5, "CPU_01"}}}, + ConfigParams {"BIN", {PriorityParams {2, "dGPU_01"}, + PriorityParams {0, "dGPU_01"}, + PriorityParams {2, "iGPU_01"}, + PriorityParams {2, "iGPU_01"}}}, + ConfigParams {"BIN", {PriorityParams {2, "dGPU_01"}, + PriorityParams {0, "dGPU_01"}, + PriorityParams {2, "iGPU_01"}, + PriorityParams {3, "CPU_01"}}}, + ConfigParams {"BIN", {PriorityParams {0, "dGPU_01"}, + PriorityParams {1, "iGPU_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {3, "CPU_01"}, + PriorityParams {0, "dGPU_01"}, + PriorityParams {1, "iGPU_01"}, + PriorityParams {2, "CPU_01"}, + PriorityParams {3, "CPU_01"}}} + }; + + +INSTANTIATE_TEST_SUITE_P(smoke_Auto_BehaviorTests, KeyNetworkPriorityTest, + ::testing::ValuesIn(testConfigs), + KeyNetworkPriorityTest::getTestCaseName); + diff --git a/inference-engine/tests/unit/auto/log_utils_test.cpp b/src/tests/unit/auto/log_utils_test.cpp similarity index 100% rename from inference-engine/tests/unit/auto/log_utils_test.cpp rename to src/tests/unit/auto/log_utils_test.cpp diff --git a/inference-engine/tests/unit/auto/mock_common.cpp b/src/tests/unit/auto/mock_common.cpp similarity index 100% rename from inference-engine/tests/unit/auto/mock_common.cpp rename to src/tests/unit/auto/mock_common.cpp diff --git a/inference-engine/tests/unit/auto/mock_common.hpp b/src/tests/unit/auto/mock_common.hpp similarity index 100% rename from inference-engine/tests/unit/auto/mock_common.hpp rename to src/tests/unit/auto/mock_common.hpp diff --git a/src/tests/unit/auto/parse_meta_device_test.cpp b/src/tests/unit/auto/parse_meta_device_test.cpp new file mode 100644 index 00000000000..83d62f3e6a7 --- /dev/null +++ b/src/tests/unit/auto/parse_meta_device_test.cpp @@ -0,0 +1,172 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_icore.hpp" +#include "unit_test_utils/mocks/mock_iinfer_request.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/impl/mock_inference_plugin_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_iexecutable_network_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_ivariable_state_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_iinference_plugin.hpp" +#include +#include +#include +#include +#include +#include "plugin/mock_auto_device_plugin.hpp" +#include "cpp/ie_plugin.hpp" +#include "mock_common.hpp" + +using ::testing::MatcherCast; +using ::testing::HasSubstr; +using ::testing::AllOf; +using ::testing::Throw; +using ::testing::Matches; +using ::testing::_; +using ::testing::StrEq; +using ::testing::StrNe; +using ::testing::Return; +using ::testing::Property; +using ::testing::Eq; +using ::testing::AnyNumber; +using ::testing::ReturnRef; +using ::testing::AtLeast; +using ::testing::InvokeWithoutArgs; +using Config = std::map; +using namespace MockMultiDevice; + +const char cpuFullDeviceName[] = "Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz"; +const char igpuFullDeviceName[] = "Intel(R) Gen9 HD Graphics (iGPU)"; +// const char dgpuFullDeviceName[] = "Intel(R) Iris(R) Xe MAX Graphics (dGPU)"; +const char myriadFullDeviceName[] = "Intel Movidius Myriad X VPU"; +const char vpuxFullDeviceName[] = ""; +using ConfigParams = std::tuple< + std::string, // Priority devices + std::vector, // expect metaDevices + bool // if throw exception + >; +class ParseMetaDeviceTest : public ::testing::TestWithParam { +public: + std::shared_ptr core; + std::shared_ptr plugin; + +public: + static std::string getTestCaseName(testing::TestParamInfo obj) { + std::string priorityDevices; + std::vector metaDevices; + bool throwException; + std::tie(priorityDevices, metaDevices, throwException) = obj.param; + std::ostringstream result; + result << "priorityDevices_" << priorityDevices; + if (throwException) { + result << "_throwException_true"; + } else { + result << "_throwException_false"; + } + return result.str(); + } + + void TearDown() override { + core.reset(); + plugin.reset(); + } + + void SetUp() override { + // prepare mockicore and cnnNetwork for loading + core = std::shared_ptr(new MockICore()); + auto* origin_plugin = new MockMultiDeviceInferencePlugin(); + plugin = std::shared_ptr(origin_plugin); + // replace core with mock Icore + plugin->SetCore(core); + + IE_SET_METRIC(SUPPORTED_METRICS, metrics, {METRIC_KEY(SUPPORTED_CONFIG_KEYS), METRIC_KEY(FULL_DEVICE_NAME)}); + ON_CALL(*core, GetMetric(_, StrEq(METRIC_KEY(SUPPORTED_METRICS)), _)) + .WillByDefault(RETURN_MOCK_VALUE(metrics)); + + ON_CALL(*core, GetMetric(HasSubstr(CommonTestUtils::DEVICE_CPU), + StrEq(METRIC_KEY(FULL_DEVICE_NAME)), _)).WillByDefault(Return(cpuFullDeviceName)); + ON_CALL(*core, GetMetric(HasSubstr(CommonTestUtils::DEVICE_GPU), + StrEq(METRIC_KEY(FULL_DEVICE_NAME)), _)).WillByDefault(Return(igpuFullDeviceName)); + ON_CALL(*core, GetMetric(HasSubstr(CommonTestUtils::DEVICE_MYRIAD), + StrEq(METRIC_KEY(FULL_DEVICE_NAME)), _)).WillByDefault(Return(myriadFullDeviceName)); + ON_CALL(*core, GetMetric(HasSubstr(CommonTestUtils::DEVICE_KEEMBAY), + StrEq(METRIC_KEY(FULL_DEVICE_NAME)), _)).WillByDefault(Return(vpuxFullDeviceName)); + IE_SET_METRIC(SUPPORTED_CONFIG_KEYS, otherConfigKeys, {CONFIG_KEY(DEVICE_ID)}); + IE_SET_METRIC(SUPPORTED_CONFIG_KEYS, cpuConfigKeys, {}); + ON_CALL(*core, GetMetric(HasSubstr(CommonTestUtils::DEVICE_CPU), + StrEq(METRIC_KEY(SUPPORTED_CONFIG_KEYS)), _)).WillByDefault(RETURN_MOCK_VALUE(cpuConfigKeys)); + ON_CALL(*core, GetMetric(Not(HasSubstr(CommonTestUtils::DEVICE_CPU)), + StrEq(METRIC_KEY(SUPPORTED_CONFIG_KEYS)), _)).WillByDefault(RETURN_MOCK_VALUE(otherConfigKeys)); + ON_CALL(*core, GetConfig(_, StrEq(CONFIG_KEY(DEVICE_ID)))) + .WillByDefault(InvokeWithoutArgs([](){return "01";})); + + ON_CALL(*plugin, ParseMetaDevices).WillByDefault([this](const std::string& priorityDevices, + const std::map& config) { + return plugin->MultiDeviceInferencePlugin::ParseMetaDevices(priorityDevices, config); + }); + } + + void compare(std::vector& result, std::vector& expect) { + EXPECT_EQ(result.size(), expect.size()); + if (result.size() == expect.size()) { + for (unsigned int i = 0 ; i < result.size(); i++) { + EXPECT_EQ(result[i].deviceName, expect[i].deviceName); + EXPECT_EQ(result[i].uniqueName, expect[i].uniqueName); + EXPECT_EQ(result[i].numRequestsPerDevices, expect[i].numRequestsPerDevices); + EXPECT_EQ(result[i].defaultDeviceID, expect[i].defaultDeviceID); + } + } + } +}; + +TEST_P(ParseMetaDeviceTest, ParseMetaDevices) { + // get Parameter + std::string priorityDevices; + std::vector metaDevices; + bool throwException; + std::tie(priorityDevices, metaDevices, throwException) = this->GetParam(); + + EXPECT_CALL(*plugin, ParseMetaDevices(_, _)).Times(1); + EXPECT_CALL(*core, GetMetric(_, _, _)).Times(AnyNumber()); + EXPECT_CALL(*core, GetConfig(_, _)).Times(AnyNumber()); + if (throwException) { + ASSERT_ANY_THROW(plugin->ParseMetaDevices(priorityDevices, {})); + } else { + auto result = plugin->ParseMetaDevices(priorityDevices, {}); + compare(result, metaDevices); + } +} + +// ConfigParams details +// example +// ConfigParams {devicePriority, expect metaDevices, ifThrowException} + +const std::vector testConfigs = { + ConfigParams {"CPU,GPU,MYRIAD,VPUX", + {{"CPU", {}, -1, "", "CPU_"}, + {"GPU", {}, -1, "01", std::string(igpuFullDeviceName) + "_01"}, + {"MYRIAD", {}, -1, "01", "MYRIAD_01"}, + {"VPUX", {}, -1, "01", "VPUX_01"}}, false}, + ConfigParams {"CPU(1),GPU(2),MYRIAD(3),VPUX(4)", + {{"CPU", {}, 1, "", "CPU_"}, + {"GPU", {}, 2, "01", std::string(igpuFullDeviceName) + "_01"}, + {"MYRIAD", {}, 3, "01", "MYRIAD_01"}, + {"VPUX", {}, 4, "01", "VPUX_01"}}, false}, + ConfigParams {"CPU(-1),GPU,MYRIAD,VPUX", {}, true}, + ConfigParams {"CPU(NA),GPU,MYRIAD,VPUX", {}, true}, + ConfigParams {"CPU.02(3),GPU.03,MYRIAD.04,VPUX.05", + {{"CPU.02", {}, 3, "", "CPU_02"}, + {"GPU.03", {}, -1, "", std::string(igpuFullDeviceName) + "_03"}, + {"MYRIAD.04", {}, -1, "", "MYRIAD_04"}, + {"VPUX.05", {}, -1, "", "VPUX_05"}}, false} + }; + + +INSTANTIATE_TEST_SUITE_P(smoke_Auto_BehaviorTests, ParseMetaDeviceTest, + ::testing::ValuesIn(testConfigs), + ParseMetaDeviceTest::getTestCaseName); + +//toDo need add test for ParseMetaDevices(_, config) to check device config of +//return metaDevices diff --git a/inference-engine/tests/unit/auto/plugin/mock_auto_device_plugin.hpp b/src/tests/unit/auto/plugin/mock_auto_device_plugin.hpp similarity index 90% rename from inference-engine/tests/unit/auto/plugin/mock_auto_device_plugin.hpp rename to src/tests/unit/auto/plugin/mock_auto_device_plugin.hpp index 883a5f581a8..f92bb52b187 100644 --- a/inference-engine/tests/unit/auto/plugin/mock_auto_device_plugin.hpp +++ b/src/tests/unit/auto/plugin/mock_auto_device_plugin.hpp @@ -14,7 +14,7 @@ namespace MockMultiDevice { class MockMultiDeviceInferencePlugin : public MultiDeviceInferencePlugin { public: MOCK_METHOD(DeviceInformation, SelectDevice, ((const std::vector&), - const std::string&), (override)); + const std::string&, unsigned int), (override)); MOCK_METHOD((std::vector), ParseMetaDevices, (const std::string&, (const std::map&)), (const, override)); }; diff --git a/inference-engine/tests/unit/auto/plugin/mock_log_utils.hpp b/src/tests/unit/auto/plugin/mock_log_utils.hpp similarity index 100% rename from inference-engine/tests/unit/auto/plugin/mock_log_utils.hpp rename to src/tests/unit/auto/plugin/mock_log_utils.hpp diff --git a/src/tests/unit/auto/select_device_test.cpp b/src/tests/unit/auto/select_device_test.cpp new file mode 100644 index 00000000000..83d4cba279f --- /dev/null +++ b/src/tests/unit/auto/select_device_test.cpp @@ -0,0 +1,214 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_icore.hpp" +#include "unit_test_utils/mocks/mock_iinfer_request.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/impl/mock_inference_plugin_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_iexecutable_network_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_ivariable_state_internal.hpp" +#include "unit_test_utils/mocks/cpp_interfaces/interface/mock_iinference_plugin.hpp" +#include +#include +#include +#include +#include +#include "plugin/mock_auto_device_plugin.hpp" +#include "cpp/ie_plugin.hpp" +#include "mock_common.hpp" + +using ::testing::MatcherCast; +using ::testing::AllOf; +using ::testing::Throw; +using ::testing::Matches; +using ::testing::_; +using ::testing::StrEq; +using ::testing::Return; +using ::testing::Property; +using ::testing::Eq; +using ::testing::ReturnRef; +using ::testing::AtLeast; +using ::testing::InvokeWithoutArgs; +using Config = std::map; +using namespace MockMultiDevice; + +using ConfigParams = std::tuple< + std::string, // netPrecision + std::vector, // metaDevices for select + DeviceInformation, // expect DeviceInformation + bool // throw exception + >; + +const DeviceInformation CPU_INFO = {CommonTestUtils::DEVICE_CPU, {}, 2, "01", "CPU_01"}; +const DeviceInformation IGPU_INFO = {CommonTestUtils::DEVICE_GPU, {}, 2, "01", "iGPU_01"}; +const DeviceInformation DGPU_INFO = {CommonTestUtils::DEVICE_GPU, {}, 2, "01", "dGPU_01"}; +const DeviceInformation MYRIAD_INFO = {CommonTestUtils::DEVICE_MYRIAD, {}, 2, "01", "MYRIAD_01" }; +const DeviceInformation KEEMBAY_INFO = {CommonTestUtils::DEVICE_KEEMBAY, {}, 2, "01", "VPUX_01" }; +const std::vector fp32DeviceVector = {DGPU_INFO, IGPU_INFO, MYRIAD_INFO, CPU_INFO}; +const std::vector fp16DeviceVector = {DGPU_INFO, IGPU_INFO, MYRIAD_INFO, CPU_INFO}; +const std::vector int8DeviceVector = {KEEMBAY_INFO, CPU_INFO}; +const std::vector binDeviceVector = {DGPU_INFO, IGPU_INFO, CPU_INFO}; +// if CPU support BATCHED_BLOB ? +// currently if there are CPU in metaDevices, the selectDevice will select CPU if on other device support +//const std::vector batchedblobDeviceVector = {DGPU_INFO, IGPU_INFO}; +const std::vector batchedblobDeviceVector = {DGPU_INFO, IGPU_INFO, CPU_INFO}; +std::map> devicesMap = {{"FP32", fp32DeviceVector}, + {"FP16", fp16DeviceVector}, + {"INT8", int8DeviceVector}, + {"BIN", binDeviceVector}, + {"BATCHED_BLOB", batchedblobDeviceVector} + }; +const std::vector totalDevices = {DGPU_INFO, IGPU_INFO, MYRIAD_INFO, CPU_INFO, KEEMBAY_INFO}; +const std::vector netPrecisions = {"FP32", "FP16", "INT8", "BIN", "BATCHED_BLOB"}; +std::vector testConfigs; + +class SelectDeviceTest : public ::testing::TestWithParam { +public: + std::shared_ptr core; + std::shared_ptr plugin; + +public: + static std::string getTestCaseName(testing::TestParamInfo obj) { + std::string netPrecision; + std::vector devices; + DeviceInformation expect; + bool throwExcept; + std::tie(netPrecision, devices, expect, throwExcept) = obj.param; + std::ostringstream result; + result << "_netPrecision_" << netPrecision; + for (auto& item : devices) { + result << "_device_" << item.uniqueName; + } + result << "_expect_" << expect.uniqueName; + if (throwExcept) { + result << "_throwExcept_true"; + } else { + result << "_throwExcept_false"; + } + return result.str(); + } + // combine select_num devices from devices and make them to ConfigParams + // insert the ConfigParams into testConfigs + static void combine_device(const std::vector& devices, int start, + int* result, int result_index, const int select_num, std::string& netPrecision) { + int i = 0; + for (i = start; i < devices.size() + 1 - result_index; i++) { + result[result_index - 1] = i; + if (result_index - 1 == 0) { + std::vector metaDevices = {}; + for (int j = select_num - 1; j >= 0; j--) { + metaDevices.push_back(devices[result[j]]); + } + // Debug the combine_device + // for (auto& item : metaDevices) { + // std::cout << item.uniqueName << "_"; + // } + // std::cout << netPrecision << std::endl; + auto& devicesInfo = devicesMap[netPrecision]; + bool find = false; + DeviceInformation expect; + for (auto& item : devicesInfo) { + auto device = std::find_if(metaDevices.begin(), metaDevices.end(), + [&item](const DeviceInformation& d)->bool{return d.uniqueName == item.uniqueName;}); + if (device != metaDevices.end()) { + find = true; + expect = item; + break; + } + } + testConfigs.push_back(std::make_tuple(netPrecision, metaDevices, expect, !find)); + } else { + combine_device(devices, i + 1, result, result_index - 1, select_num, netPrecision); + } + } + } + + static std::vector CreateConfigs() { + auto result = new int[totalDevices.size()]; + // test all netPrecision with all possible combine devices + // netPrecision number is 5 + // device number is 5 + // combine devices is 5!/5! + 5!/(4!*1!) + 5!/(3!*2!) + 5!/(2!*3!) + 5(1!*4!) = 31 + // null device 1 + // total test config num is 32*5 = 160 + for (auto netPrecision : netPrecisions) { + for (int i = 1; i <= totalDevices.size(); i++) { + combine_device(totalDevices, 0, result, i, i, netPrecision); + } + // test null device + testConfigs.push_back(ConfigParams{netPrecision, {}, {}, true}); + } + delete []result; + return testConfigs; + } + + void compare(DeviceInformation& a, DeviceInformation& b) { + EXPECT_EQ(a.deviceName, b.deviceName); + EXPECT_EQ(a.uniqueName, b.uniqueName); + EXPECT_EQ(a.defaultDeviceID, b.defaultDeviceID); + } + + void TearDown() override { + core.reset(); + plugin.reset(); + } + + void SetUp() override { + // prepare mockicore and cnnNetwork for loading + core = std::shared_ptr(new MockICore()); + auto* origin_plugin = new MockMultiDeviceInferencePlugin(); + plugin = std::shared_ptr(origin_plugin); + // replace core with mock Icore + plugin->SetCore(core); + + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, cpuCability, {"FP32", "FP16", "INT8", "BIN"}); + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, gpuCability, {"FP32", "FP16", "BATCHED_BLOB", "BIN"}); + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, myriadCability, {"FP16"}); + IE_SET_METRIC(OPTIMIZATION_CAPABILITIES, vpuxCability, {"INT8"}); + + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_CPU), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(cpuCability)); + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_GPU), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(gpuCability)); + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_MYRIAD), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(myriadCability)); + ON_CALL(*core, GetMetric(StrEq(CommonTestUtils::DEVICE_KEEMBAY), + StrEq(METRIC_KEY(OPTIMIZATION_CAPABILITIES)), _)).WillByDefault(RETURN_MOCK_VALUE(vpuxCability)); + ON_CALL(*plugin, SelectDevice).WillByDefault([this](const std::vector& metaDevices, + const std::string& netPrecision, unsigned int priority) { + return plugin->MultiDeviceInferencePlugin::SelectDevice(metaDevices, netPrecision, priority); + }); + } +}; + +TEST_P(SelectDeviceTest, SelectDevice) { + // get Parameter + std::string netPrecision; + std::vector devices; + DeviceInformation expect; + bool throwExcept; + std::tie(netPrecision, devices, expect, throwExcept) = this->GetParam(); + + EXPECT_CALL(*plugin, SelectDevice(_, _, _)).Times(1); + if (devices.size() >= 1) { + EXPECT_CALL(*core, GetMetric(_, _, _)).Times(AtLeast(devices.size() - 1)); + } else { + EXPECT_CALL(*core, GetMetric(_, _, _)).Times(0); + } + + if (throwExcept) { + ASSERT_THROW(plugin->SelectDevice(devices, netPrecision, 0), InferenceEngine::Exception); + } else { + auto result = plugin->SelectDevice(devices, netPrecision, 0); + compare(result, expect); + } +} + + + +INSTANTIATE_TEST_SUITE_P(smoke_Auto_BehaviorTests, SelectDeviceTest, + ::testing::ValuesIn(SelectDeviceTest::CreateConfigs()), + SelectDeviceTest::getTestCaseName); + diff --git a/inference-engine/tests/unit/cpu/CMakeLists.txt b/src/tests/unit/cpu/CMakeLists.txt similarity index 100% rename from inference-engine/tests/unit/cpu/CMakeLists.txt rename to src/tests/unit/cpu/CMakeLists.txt diff --git a/inference-engine/tests/unit/cpu/mkldnn_memory_desc_test.cpp b/src/tests/unit/cpu/mkldnn_memory_desc_test.cpp similarity index 99% rename from inference-engine/tests/unit/cpu/mkldnn_memory_desc_test.cpp rename to src/tests/unit/cpu/mkldnn_memory_desc_test.cpp index c4ff9feb0cb..4e25879f191 100644 --- a/inference-engine/tests/unit/cpu/mkldnn_memory_desc_test.cpp +++ b/src/tests/unit/cpu/mkldnn_memory_desc_test.cpp @@ -541,7 +541,7 @@ TEST(cloneWithParamsChange, UndefinedAndDefaultParams) { } } -TEST(makeDummyDesc, LowerBoundMoreThenDummyValie) { +TEST(makeDummyDesc, LowerBoundMoreThanDummyValue) { Shape shape(ngraph::PartialShape{1, 3, 85, {144, 1444}}); auto desc = std::make_shared(shape, mkldnn::memory::data_type::f32, mkldnn::memory::format_tag::nchw); ASSERT_FALSE(desc->isDefined()); diff --git a/inference-engine/tests/unit/cpu/mkldnn_memory_test.cpp b/src/tests/unit/cpu/mkldnn_memory_test.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/mkldnn_memory_test.cpp rename to src/tests/unit/cpu/mkldnn_memory_test.cpp diff --git a/src/tests/unit/cpu/mkldnn_zero_dims_test.cpp b/src/tests/unit/cpu/mkldnn_zero_dims_test.cpp new file mode 100644 index 00000000000..cb2944dc6b6 --- /dev/null +++ b/src/tests/unit/cpu/mkldnn_zero_dims_test.cpp @@ -0,0 +1,258 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include "mkldnn_memory.h" +#include "memory_desc/cpu_memory_desc_utils.h" +#include "nodes/common/blocked_desc_creator.h" +#include "mkldnn_extension_utils.h" +#include "memory_desc/dnnl_blocked_memory_desc.h" + +using namespace MKLDNNPlugin; +using namespace InferenceEngine; +using namespace testing; + +/* ======================================= BASE ZERO DIM TEST ======================================= */ +class MemDescWithZeroDimsBaseTest: public ::testing::Test { +protected: + Shape shape; + dnnl::memory::format_tag fmt; + const InferenceEngine::Precision precision = InferenceEngine::Precision::FP32; + + void validate(const BlockedMemoryDesc& desc, const VectorDims& expectedStrieds, size_t offsetSize, size_t offsetPaddingSize, + size_t maxMemSize, bool orderCheckSkip = false) { + VectorDims expectedBlkDims; + VectorDims expectedOrder; + { + auto origShape = shape.toPartialShape(); + auto replaceShape = origShape; + std::replace(replaceShape.begin(), replaceShape.end(), ngraph::Dimension(0), ngraph::Dimension(3)); + Shape dummyShape(replaceShape); + DnnlBlockedMemoryDesc dummyDesc(dummyShape, MKLDNNExtensionUtils::IEPrecisionToDataType(precision), fmt); + expectedBlkDims = dummyDesc.getBlockDims(); + expectedOrder = dummyDesc.getOrder(); + for (size_t i = 0; i < dummyShape.getRank(); i++) { + if (origShape[expectedOrder[i]] == ngraph::Dimension(0)) { + expectedBlkDims[i] = 0; + } + } + } + + ASSERT_EQ(shape.getDims(), desc.getShape().getDims()); + ASSERT_EQ(shape.getMinDims(), desc.getShape().getMinDims()); + ASSERT_EQ(shape.getMaxDims(), desc.getShape().getMaxDims()); + + ASSERT_EQ(expectedStrieds, desc.getStrides()); + ASSERT_EQ(expectedBlkDims, desc.getBlockDims()); + if (!orderCheckSkip) { + ASSERT_EQ(expectedOrder, desc.getOrder()); + } + + ASSERT_EQ(0, desc.getPaddedElementsCount()); + ASSERT_EQ(maxMemSize, desc.getMaxMemSize()); + ASSERT_EQ(maxMemSize, desc.getCurrentMemSize()); + + ASSERT_EQ(offsetSize, desc.getOffsetPadding()); + ASSERT_EQ(VectorDims(expectedBlkDims.size(), offsetPaddingSize), desc.getOffsetPaddingToData()); + } + + virtual std::pair createDescs() const { + DnnlBlockedMemoryDesc descDnnl(precision, shape); + CpuBlockedMemoryDesc descCpu(precision, shape); + return {descDnnl, descCpu}; + } + + void Run() { + const size_t offset = 0, offsetPadding = 0; + + auto descs = createDescs(); + DnnlBlockedMemoryDesc descDnnl(descs.first); + CpuBlockedMemoryDesc descCpu(descs.second); + + VectorDims zeroStrides(descDnnl.getBlockDims().size(), 0); + validate(descDnnl, zeroStrides, offset, offsetPadding, 0); + validate(descCpu, zeroStrides, offset, offsetPadding, precision.size()); + + ASSERT_TRUE(descDnnl.isCompatible(descCpu)); + ASSERT_TRUE(descCpu.isCompatible(descDnnl)); + + // undefined + VectorDims undefDnnlStrides(descDnnl.getBlockDims().size(), Shape::UNDEFINED_DIM); + std::fill(undefDnnlStrides.begin() + descDnnl.getShape().getRank(), undefDnnlStrides.end(), 0); + const auto undefDnnl = descDnnl.cloneWithUndefStridesAndOffset(); + validate(*undefDnnl->as(), undefDnnlStrides, Shape::UNDEFINED_DIM, offsetPadding, Shape::UNDEFINED_DIM); + + VectorDims undefCpuStrides(descCpu.getBlockDims().size(), Shape::UNDEFINED_DIM); + const auto undefCpu = descCpu.cloneWithUndefStridesAndOffset(); + validate(*undefCpu->as(), undefCpuStrides, Shape::UNDEFINED_DIM, offsetPadding, + Shape::UNDEFINED_DIM); + + // defined + const auto definedDnnl = descDnnl.cloneWithDefaultStridesAndOffset(); + validate(*definedDnnl->as(), zeroStrides, offset, offsetPadding, 0); + + const auto definedCpu = descCpu.cloneWithDefaultStridesAndOffset(); + validate(*definedCpu->as(), zeroStrides, offset, offsetPadding, precision.size()); + } +}; + +/* ======================================= TEST DATA ======================================= */ +const std::vector staticShapes = { + Shape(VectorDims{0, 32, 48, 64}), + Shape(VectorDims{16, 0, 48, 64}), + Shape(VectorDims{16, 32, 0, 64}), + Shape(VectorDims{16, 32, 48, 0}), + Shape(VectorDims{16, 32, 0, 0}), + Shape(VectorDims{0, 0, 48, 64}), + Shape(VectorDims{16, 0, 0, 64}), + Shape(VectorDims{0, 0, 0, 64}), + Shape(VectorDims{16, 0, 0, 0}), + Shape(VectorDims{0, 0, 0, 0}) +}; + +const std::vector dynamicShapes = { + Shape(ngraph::PartialShape{0, -1, {0, 48}, -1}), + Shape(ngraph::PartialShape{16, 0, -1, {0, 64}}), + Shape(ngraph::PartialShape{-1, -1, 0, -1}), + Shape(ngraph::PartialShape{{0, 16}, -1, {0, 48}, 0}), + Shape(ngraph::PartialShape{-1, 32, 0, 0}), + Shape(ngraph::PartialShape{0, 0, 48, -1}), + Shape(ngraph::PartialShape{{0, 16}, 0, 0, 64}), + Shape(ngraph::PartialShape{0, 0, 0, -1}), + Shape(ngraph::PartialShape{{0, 16}, 0, 0, 0}), + Shape(ngraph::PartialShape{0, 0, 0, 0}) +}; + +const std::vector fmts = { + dnnl::memory::format_tag::nchw, + dnnl::memory::format_tag::nhwc, + dnnl::memory::format_tag::nChw8c, + dnnl::memory::format_tag::nChw16c, + dnnl::memory::format_tag::NChw16n16c, + dnnl::memory::format_tag::Acdb16a +}; + +/* ======================================= SPECIFIC TEST CASES ======================================= */ +using MemDescWithZeroDimsParams = std::tuple; + +class MemDescWithZeroDimsFmtTest: public testing::WithParamInterface, + public MemDescWithZeroDimsBaseTest { +public: + static std::string getTestCaseName(const testing::TestParamInfo &obj) { + Shape shape; + dnnl::memory::format_tag fmt; + std::tie(fmt, shape) = obj.param; + std::ostringstream result; + result << "Shape=" << shape.toString(); + result << "_Fmt=" << mkldnn::utils::fmt2str(fmt); + return result.str(); + } + + std::pair createDescs() const override { + DnnlBlockedMemoryDesc descDnnl(shape, MKLDNNExtensionUtils::IEPrecisionToDataType(precision), fmt); + CpuBlockedMemoryDesc descCpu(precision, shape, descDnnl.getBlockDims(), descDnnl.getOrder()); + return {descDnnl, descCpu}; + } + +protected: + void SetUp() override { + std::tie(fmt, shape) = this->GetParam(); + ASSERT_TRUE(shape.hasZeroDims()) << "Can't run MemDescWithZeroDimsTest, because shape doesn't contain zero dims"; + } +}; + +TEST_P(MemDescWithZeroDimsFmtTest, CreateDescWithFmt) { + Run(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_MemDescWithZeroDimsFmtTest_static, MemDescWithZeroDimsFmtTest, + ::testing::Combine(::testing::ValuesIn(fmts), + ::testing::ValuesIn(staticShapes)), + MemDescWithZeroDimsFmtTest::getTestCaseName); + +INSTANTIATE_TEST_SUITE_P(smoke_MemDescWithZeroDimsFmtTest_dynamic, MemDescWithZeroDimsFmtTest, + ::testing::Combine(::testing::ValuesIn(fmts), + ::testing::ValuesIn(dynamicShapes)), + MemDescWithZeroDimsFmtTest::getTestCaseName); + +class MemDescWithZeroDimsPlanarTest: public testing::WithParamInterface, + public MemDescWithZeroDimsBaseTest { +public: + static std::string getTestCaseName(const testing::TestParamInfo &obj) { + Shape shape; + shape = obj.param; + std::ostringstream result; + result << "Shape=" << shape.toString(); + return result.str(); + } +protected: + void SetUp() override { + shape = this->GetParam(); + fmt = dnnl::memory::format_tag::nchw; + ASSERT_TRUE(shape.hasZeroDims()) << "Can't run MemDescWithZeroDimsTest, because shape doesn't contain zero dims"; + } +}; + +TEST_P(MemDescWithZeroDimsPlanarTest, CreateDescPlanar) { + Run(); +} + +INSTANTIATE_TEST_SUITE_P(smoke_MemDescWithZeroDimsPlanarTest, MemDescWithZeroDimsPlanarTest, + ::testing::ValuesIn(staticShapes), + MemDescWithZeroDimsPlanarTest::getTestCaseName); + +using MemDescWithZeroDimsCloneNewDimsParams = std::tuple; // static shapes + +class MemDescWithZeroDimsCloneNewDimsTest: public testing::WithParamInterface, + public MemDescWithZeroDimsBaseTest { +public: + static std::string getTestCaseName(const testing::TestParamInfo &obj) { + Shape shapeDynamic, shapeClone; + dnnl::memory::format_tag fmt; + std::tie(fmt, shapeDynamic, shapeClone) = obj.param; + std::ostringstream result; + result << "ShapeDynamic=" << shapeDynamic.toString(); + result << "_ShapeClone=" << shapeClone.toString(); + result << "_Fmt=" << mkldnn::utils::fmt2str(fmt); + return result.str(); + } +protected: + Shape shapeDynamic; + + void SetUp() override { + std::tie(fmt, shapeDynamic, shape) = this->GetParam(); + ASSERT_TRUE(shape.hasZeroDims()) << "Can't run MemDescWithZeroDimsTest, because shape doesn't contain zero dims"; + } +}; + +TEST_P(MemDescWithZeroDimsCloneNewDimsTest, CloneWithNewDims) { + DnnlBlockedMemoryDesc dynamicDescDnnl(shapeDynamic, MKLDNNExtensionUtils::IEPrecisionToDataType(precision), fmt); + CpuBlockedMemoryDesc dynamicDescCpu(precision, shape, dynamicDescDnnl.getBlockDims(), dynamicDescDnnl.getOrder()); + const size_t offset = 0, offsetPadding = 0; + VectorDims zeroStrides(dynamicDescDnnl.getBlockDims().size(), 0); + + const auto clonedDescDnnl = dynamicDescDnnl.cloneWithNewDims(shape.getStaticDims()); + const auto clonedDescCpu = dynamicDescCpu.cloneWithNewDims(shape.getStaticDims()); + + // can't compute order correct since strides equal + const auto& dims = shape.getDims(); + bool skipOrderCheck = std::all_of(dims.begin() + 1, dims.end(), [](const size_t& dim) { return dim == 0; }); + validate(*clonedDescDnnl->as(), zeroStrides, offset, offsetPadding, 0, skipOrderCheck); + validate(*clonedDescCpu->as(), zeroStrides, offset, offsetPadding, precision.size()); +} + +const std::vector srcDynShapes = { + Shape(ngraph::PartialShape({-1, -1, -1, -1})), + Shape(ngraph::PartialShape({{0, 16}, {0, 32}, {0, 48}, {0, 64}})) +}; + +INSTANTIATE_TEST_SUITE_P(smoke_MemDescWithZeroDimsCloneNewDimsTest, MemDescWithZeroDimsCloneNewDimsTest, + ::testing::Combine(::testing::ValuesIn(fmts), + ::testing::ValuesIn(srcDynShapes), + ::testing::ValuesIn(staticShapes)), + MemDescWithZeroDimsCloneNewDimsTest::getTestCaseName); diff --git a/inference-engine/tests/unit/cpu/ngraph_transformations/convert_matmul_test.cpp b/src/tests/unit/cpu/ngraph_transformations/convert_matmul_test.cpp similarity index 84% rename from inference-engine/tests/unit/cpu/ngraph_transformations/convert_matmul_test.cpp rename to src/tests/unit/cpu/ngraph_transformations/convert_matmul_test.cpp index 79fb1d8a387..49aa6dab406 100644 --- a/inference-engine/tests/unit/cpu/ngraph_transformations/convert_matmul_test.cpp +++ b/src/tests/unit/cpu/ngraph_transformations/convert_matmul_test.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -171,7 +170,6 @@ TEST(TransformationTests, ConvertMatMulToFCTest7) { ngraph::pass::Manager m; m.register_pass(); m.register_pass(); - m.register_pass(); m.run_passes(f); ASSERT_NO_THROW(check_rt_info(f)); } @@ -179,12 +177,9 @@ TEST(TransformationTests, ConvertMatMulToFCTest7) { { auto input1 = std::make_shared(ngraph::element::f32, ngraph::Shape{3, 2, 2}); auto input2 = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{3, 2}, {1}); - auto reshape_begin = std::make_shared( - input1, ngraph::opset1::Constant::create(ngraph::element::i64, ngraph::Shape{2}, std::vector{-1, 2}), false); - auto fc = std::make_shared(reshape_begin, input2, ngraph::Rank(2)); - auto reshape_end = ngraph::op::util::reshapeTo(fc, ngraph::Shape{3, 2, 3}); + auto fc = std::make_shared(input1, input2, ngraph::Rank(2)); - f_ref = std::make_shared(ngraph::NodeVector{reshape_end}, ngraph::ParameterVector{input1}); + f_ref = std::make_shared(ngraph::NodeVector{fc}, ngraph::ParameterVector{input1}); } auto res = compare_functions(f, f_ref, true); @@ -202,7 +197,6 @@ TEST(TransformationTests, ConvertMatMulToFCTest8) { ngraph::pass::Manager m; m.register_pass(); m.register_pass(); - m.register_pass(); m.run_passes(f); ASSERT_NO_THROW(check_rt_info(f)); } @@ -211,18 +205,14 @@ TEST(TransformationTests, ConvertMatMulToFCTest8) { auto input1 = std::make_shared(ngraph::element::f32, ngraph::PartialShape{-1, -1, 2}); auto input2 = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{3, 2}, {1}); - auto reshape_begin = std::make_shared( - input1, ngraph::opset1::Constant::create(ngraph::element::i64, {2}, {-1, 2}), false); - - auto fc = std::make_shared(reshape_begin, input2, ngraph::Rank(2)); + auto fc = std::make_shared(input1, input2, ngraph::Rank(2)); auto a_shape = std::make_shared(input1); auto I = ngraph::op::util::node_to_get_shape_value_of_indices_from_shape_node(a_shape, {0, 1}); auto O = ngraph::opset1::Constant::create(ngraph::element::i64, { 1 }, { 3 }); auto output_shape = std::make_shared(ngraph::OutputVector{I, O}, 0); - auto reshape_end = std::make_shared(fc, output_shape, false); - f_ref = std::make_shared(ngraph::NodeVector{reshape_end}, ngraph::ParameterVector{input1}); + f_ref = std::make_shared(ngraph::NodeVector{fc}, ngraph::ParameterVector{input1}); } auto res = compare_functions(f, f_ref, true); @@ -268,7 +258,6 @@ TEST(TransformationTests, ConvertMatMulToFCTest10) { ngraph::pass::Manager m; m.register_pass(); m.register_pass(); - m.register_pass(); ASSERT_NO_THROW(m.run_passes(f)); } @@ -439,25 +428,22 @@ TEST(TransformationTests, ConvertMatMulToFCTest_second_input_rank_adj_1) { std::shared_ptr f(nullptr), f_ref(nullptr); { auto input1 = std::make_shared(ngraph::element::f32, ngraph::Shape{5, 2, 3}); - auto input2 = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{1, 1, 2, 3}, {1}); + auto input2 = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{1, 2, 3}, {1}); auto matmul = std::make_shared(input1, input2, false, true); f = std::make_shared(ngraph::NodeVector{matmul}, ngraph::ParameterVector{input1}); ngraph::pass::Manager m; m.register_pass(); m.register_pass(); - m.register_pass(); m.run_passes(f); ASSERT_NO_THROW(check_rt_info(f)); } { auto input1 = std::make_shared(ngraph::element::f32, ngraph::Shape{5, 2, 3}); - auto reshape_1 = std::make_shared(input1, ngraph::opset1::Constant::create(ngraph::element::i64, {2}, {-1, 3}), false); auto input2 = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{2, 3}, {1}); - auto matmul = std::make_shared(reshape_1, input2, ngraph::Rank(2)); - auto reshape_out = std::make_shared(matmul, ngraph::opset1::Constant::create(ngraph::element::i64, {4}, {1, 5, 2, 2}), false); - f_ref = std::make_shared(ngraph::NodeVector{reshape_out}, ngraph::ParameterVector{input1}); + auto matmul = std::make_shared(input1, input2, ngraph::Rank(2)); + f_ref = std::make_shared(ngraph::NodeVector{matmul}, ngraph::ParameterVector{input1}); } auto res = compare_functions(f, f_ref, true); @@ -475,7 +461,6 @@ TEST(TransformationTests, ConvertMatMulToFCTest_second_input_rank_adj_2) { ngraph::pass::Manager m; m.register_pass(); m.register_pass(); - m.register_pass(); m.run_passes(f); ASSERT_NO_THROW(check_rt_info(f)); } @@ -495,9 +480,9 @@ TEST(TransformationTests, ConvertMatMulToFCTest_second_input_rank_adj_3) { std::shared_ptr f(nullptr), f_ref(nullptr); { auto input1 = std::make_shared(ngraph::element::f32, ngraph::Shape{ 5, 2, 3 }); - auto weights = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{ 1, 1, 2, 3 }, { 1 }); + auto weights = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{ 1, 2, 3 }, { 1 }); auto matmul = std::make_shared(input1, weights, false, true); - auto biases = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{ 1, 1, 1, 2 }, { 1 }); + auto biases = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{ 1, 1, 2 }, { 1 }); auto add = std::make_shared(matmul, biases); f = std::make_shared(ngraph::NodeVector{ add }, ngraph::ParameterVector{ input1 }); @@ -505,7 +490,6 @@ TEST(TransformationTests, ConvertMatMulToFCTest_second_input_rank_adj_3) { m.register_pass(); m.register_pass(); m.register_pass(); - m.register_pass(); m.run_passes(f); ASSERT_NO_THROW(check_rt_info(f)); } @@ -513,53 +497,13 @@ TEST(TransformationTests, ConvertMatMulToFCTest_second_input_rank_adj_3) { { auto input1 = std::make_shared(ngraph::element::f32, ngraph::Shape{ 5, 2, 3 }); auto reshape_before_const = ngraph::opset1::Constant::create(ngraph::element::i64, { 2 }, { -1, 3 }); - auto reshape_1 = std::make_shared(input1, reshape_before_const, false); auto weights = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{ 2, 3 }, { 1 }); auto biases = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{ 2 }, { 1 }); - auto matmul = std::make_shared(reshape_1, weights, biases, ngraph::Rank(2)); + auto matmul = std::make_shared(input1, weights, biases, ngraph::Rank(2)); auto reshape_after_const = ngraph::opset1::Constant::create(ngraph::element::i64, { 4 }, { 1, 5, 2, 2 }); - auto reshape_out = std::make_shared(matmul, reshape_after_const, false); - f_ref = std::make_shared(ngraph::NodeVector{ reshape_out }, ngraph::ParameterVector{ input1 }); - } - - auto res = compare_functions(f, f_ref, true); - ASSERT_TRUE(res.first) << res.second; -} - -TEST(TransformationTests, ConvertMatMulToFCTest_second_input_rank_adj_dynamic) { - std::shared_ptr f(nullptr), f_ref(nullptr); - { - auto input1 = std::make_shared(ngraph::element::f32, ngraph::PartialShape{-1, 2, 3}); - auto input2 = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{1, 1, 2, 3}, {1}); - auto matmul = std::make_shared(input1, input2, false, true); - - f = std::make_shared(ngraph::NodeVector{matmul}, ngraph::ParameterVector{input1}); - ngraph::pass::Manager m; - m.register_pass(); - m.register_pass(); - m.register_pass(); - m.run_passes(f); - ASSERT_NO_THROW(check_rt_info(f)); - } - - { - auto input1 = std::make_shared(ngraph::element::f32, ngraph::PartialShape{-1, 2, 3}); - auto reshape_1 = std::make_shared(input1, ngraph::opset1::Constant::create(ngraph::element::i64, {2}, {-1, 3}), false); - auto input2 = ngraph::opset1::Constant::create(ngraph::element::f32, ngraph::Shape{2, 3}, {1}); - auto matmul = std::make_shared(reshape_1, input2, ngraph::Rank(2)); - - auto shape_of = std::make_shared(input1); - auto gather = std::make_shared( - shape_of, ngraph::opset1::Constant::create(ngraph::element::i64, {2}, {0, 1}), ngraph::opset1::Constant::create(ngraph::element::i64, {}, {0})); - auto concat = std::make_shared(ngraph::OutputVector{ - ngraph::opset1::Constant::create(ngraph::element::i64, {1}, {1}), - gather, - ngraph::opset1::Constant::create(ngraph::element::i64, {1}, {2}), - }, 0); - auto reshape_out = std::make_shared(matmul, concat, false); - f_ref = std::make_shared(ngraph::NodeVector{reshape_out}, ngraph::ParameterVector{input1}); + f_ref = std::make_shared(ngraph::NodeVector{ matmul }, ngraph::ParameterVector{ input1 }); } auto res = compare_functions(f, f_ref, true); diff --git a/inference-engine/tests/unit/cpu/ngraph_transformations/convert_to_leaky_relu_test.cpp b/src/tests/unit/cpu/ngraph_transformations/convert_to_leaky_relu_test.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/ngraph_transformations/convert_to_leaky_relu_test.cpp rename to src/tests/unit/cpu/ngraph_transformations/convert_to_leaky_relu_test.cpp diff --git a/inference-engine/tests/unit/cpu/ngraph_transformations/move_eltwise_up_data_movement_test.cpp b/src/tests/unit/cpu/ngraph_transformations/move_eltwise_up_data_movement_test.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/ngraph_transformations/move_eltwise_up_data_movement_test.cpp rename to src/tests/unit/cpu/ngraph_transformations/move_eltwise_up_data_movement_test.cpp diff --git a/inference-engine/tests/unit/cpu/ngraph_transformations/reshape_prelu_test.cpp b/src/tests/unit/cpu/ngraph_transformations/reshape_prelu_test.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/ngraph_transformations/reshape_prelu_test.cpp rename to src/tests/unit/cpu/ngraph_transformations/reshape_prelu_test.cpp diff --git a/inference-engine/tests/unit/cpu/nodes/mkldnn_reorder_node.cpp b/src/tests/unit/cpu/nodes/mkldnn_reorder_node.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/nodes/mkldnn_reorder_node.cpp rename to src/tests/unit/cpu/nodes/mkldnn_reorder_node.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/.clang-format b/src/tests/unit/cpu/shape_inference_test/.clang-format similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/.clang-format rename to src/tests/unit/cpu/shape_inference_test/.clang-format diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/assign_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/assign_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/assign_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/assign_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/convolution_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/convolution_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/convolution_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/convolution_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/elementwises.cpp b/src/tests/unit/cpu/shape_inference_test/elementwises.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/elementwises.cpp rename to src/tests/unit/cpu/shape_inference_test/elementwises.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/experimental_detectron_detection_output_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/experimental_detectron_detection_output_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/experimental_detectron_detection_output_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/experimental_detectron_detection_output_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/experimental_detectron_prior_grid_generator_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/experimental_detectron_prior_grid_generator_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/experimental_detectron_prior_grid_generator_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/experimental_detectron_prior_grid_generator_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/experimental_detectron_topkrois_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/experimental_detectron_topkrois_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/experimental_detectron_topkrois_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/experimental_detectron_topkrois_shape_inference.cpp diff --git a/src/tests/unit/cpu/shape_inference_test/gather_elements_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/gather_elements_shape_inference.cpp new file mode 100644 index 00000000000..3d21d71ed07 --- /dev/null +++ b/src/tests/unit/cpu/shape_inference_test/gather_elements_shape_inference.cpp @@ -0,0 +1,24 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#include + +#include +#include +#include +#include +#include + +using namespace ov; + +TEST(StaticShapeInferenceTest, GatherElementsTest) { + int64_t axis = -1; + auto D = std::make_shared(element::f32, PartialShape{-1, -1, -1, -1}); + auto I = std::make_shared(element::i32, PartialShape{-1, -1, -1, -1}); + auto GE = std::make_shared(D, I, axis); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{300, 3, 10, 1}, StaticShape{300, 3, 10, 33333}}, + static_output_shapes = {StaticShape{}}; + shape_inference(GE.get(), static_input_shapes, static_output_shapes); + ASSERT_EQ(static_output_shapes[0], (StaticShape{300, 3, 10, 33333})); +} \ No newline at end of file diff --git a/src/tests/unit/cpu/shape_inference_test/gather_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/gather_shape_inference.cpp new file mode 100644 index 00000000000..25ed1f72ec3 --- /dev/null +++ b/src/tests/unit/cpu/shape_inference_test/gather_shape_inference.cpp @@ -0,0 +1,95 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include +#include +#include +#include +#include +#include + +using namespace ov; + +TEST(StaticShapeInferenceTest, GatherV1Test) { + auto P = std::make_shared(element::f32, PartialShape{-1, -1}); + auto I = std::make_shared(element::i32, PartialShape{-1, -1}); + auto A = op::v0::Constant::create(element::i64, Shape{}, {0}); + auto G = std::make_shared(P, I, A); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{3, 2}, StaticShape{2, 2}, StaticShape{1}}, + static_output_shapes = {StaticShape{}}; + shape_inference(G.get(), static_input_shapes, static_output_shapes); + ASSERT_EQ(static_output_shapes[0], (StaticShape{2, 2, 2})); +} + +TEST(StaticShapeInferenceTest, GatherV1TestNonConstantA) { + auto P = std::make_shared(element::f32, PartialShape{-1, -1}); + auto I = std::make_shared(element::i32, PartialShape{-1, -1}); + auto A = std::make_shared(element::i32, PartialShape{}); + auto G = std::make_shared(P, I, A); + auto hostTensor = std::make_shared(element::i32, Shape{}); + int32_t val_a = 1; + hostTensor->write(&val_a, sizeof(int32_t)); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{3, 2}, StaticShape{2, 2}, StaticShape{}}, + static_output_shapes = {StaticShape{}}; + shape_inference(G.get(), static_input_shapes, static_output_shapes, {{2, hostTensor}}); + ASSERT_EQ(static_output_shapes[0], (StaticShape{3, 2, 2})); +} + +TEST(StaticShapeInferenceTest, GatherV7Test) { + auto P = std::make_shared(element::f32, PartialShape{-1, -1}); + auto I = std::make_shared(element::i32, PartialShape{-1, -1}); + auto A = op::v0::Constant::create(element::i64, Shape{}, {0}); + auto G = std::make_shared(P, I, A); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{3, 2}, StaticShape{2, 2}, StaticShape{1}}, + static_output_shapes = {StaticShape{}}; + shape_inference(G.get(), static_input_shapes, static_output_shapes); + ASSERT_EQ(static_output_shapes[0], (StaticShape{2, 2, 2})); +} + +TEST(StaticShapeInferenceTest, GatherV7TestNonConstantA) { + auto P = std::make_shared(element::f32, PartialShape{-1, -1}); + auto I = std::make_shared(element::i32, PartialShape{-1, -1}); + auto A = std::make_shared(element::i32, PartialShape{}); + auto G = std::make_shared(P, I, A); + auto hostTensor = std::make_shared(element::i32, Shape{}); + int32_t val_a = 0; + hostTensor->write(&val_a, sizeof(int32_t)); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{3, 2}, StaticShape{2, 2}, StaticShape{}}, + static_output_shapes = {StaticShape{}}; + shape_inference(G.get(), static_input_shapes, static_output_shapes, {{2, hostTensor}}); + ASSERT_EQ(static_output_shapes[0], (StaticShape{2, 2, 2})); +} + +TEST(StaticShapeInferenceTest, GatherV8Test) { + auto P = std::make_shared(element::f32, PartialShape{-1, -1}); + auto I = std::make_shared(element::i32, PartialShape{-1, -1}); + auto A = op::v0::Constant::create(element::i64, Shape{}, {0}); + auto G = std::make_shared(P, I, A); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{3, 2}, StaticShape{2, 2}, StaticShape{1}}, + static_output_shapes = {StaticShape{}}; + shape_inference(G.get(), static_input_shapes, static_output_shapes); + ASSERT_EQ(static_output_shapes[0], (StaticShape{2, 2, 2})); +} + +TEST(StaticShapeInferenceTest, GatherV8TestNonConstantA) { + auto P = std::make_shared(element::f32, PartialShape{-1, -1}); + auto I = std::make_shared(element::i32, PartialShape{-1, -1}); + auto A = std::make_shared(element::i32, PartialShape{}); + auto G = std::make_shared(P, I, A); + auto hostTensor = std::make_shared(element::i32, Shape{}); + int32_t val_a = 0; + hostTensor->write(&val_a, sizeof(int32_t)); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{3, 2}, StaticShape{2, 2}, StaticShape{}}, + static_output_shapes = {StaticShape{}}; + shape_inference(G.get(), static_input_shapes, static_output_shapes, {{2, hostTensor}}); + ASSERT_EQ(static_output_shapes[0], (StaticShape{2, 2, 2})); +} \ No newline at end of file diff --git a/src/tests/unit/cpu/shape_inference_test/gather_tree_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/gather_tree_shape_inference.cpp new file mode 100644 index 00000000000..0754513f312 --- /dev/null +++ b/src/tests/unit/cpu/shape_inference_test/gather_tree_shape_inference.cpp @@ -0,0 +1,30 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include +#include +#include +#include +#include +#include + +using namespace ov; + +TEST(StaticShapeInferenceTest, GatherTreeTest) { + auto step_ids = std::make_shared(element::f32, PartialShape{-1, -1, -1}); + auto parent_idx = std::make_shared(element::f32, PartialShape{-1, -1, -1}); + auto max_seq_len = std::make_shared(element::f32, PartialShape{-1}); + auto end_token = std::make_shared(element::f32, PartialShape{Shape{}}); + auto gather_tree = std::make_shared(step_ids, parent_idx, max_seq_len, end_token); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{1, 2, 3}, + StaticShape{1, 2, 3}, + StaticShape{2}, + StaticShape{}}, + static_output_shapes = {StaticShape{}}; + shape_inference(gather_tree.get(), static_input_shapes, static_output_shapes); + ASSERT_EQ(static_output_shapes[0], (StaticShape{1, 2, 3})); +} \ No newline at end of file diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/interpolate_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/interpolate_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/interpolate_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/interpolate_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/lstm_cell_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/lstm_cell_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/lstm_cell_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/lstm_cell_shape_inference.cpp diff --git a/src/tests/unit/cpu/shape_inference_test/one_hot_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/one_hot_shape_inference.cpp new file mode 100644 index 00000000000..98f461d391f --- /dev/null +++ b/src/tests/unit/cpu/shape_inference_test/one_hot_shape_inference.cpp @@ -0,0 +1,27 @@ +// Copyright (C) 2018-2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// +#include + +#include +#include +#include +#include +#include +#include + +using namespace ov; + +TEST(StaticShapeInferenceTest, OneHotTest) { + auto indices = std::make_shared(element::i64, PartialShape{-1}); + auto depth = op::v0::Constant::create(element::i64, Shape{}, {2}); + auto on_value = op::v0::Constant::create(element::u32, Shape{}, {5}); + auto off_value = op::v0::Constant::create(element::u32, Shape{}, {10}); + int64_t axis = -1; + auto ont_hot = std::make_shared(indices, depth, on_value, off_value, axis); + // Test StaticShape + std::vector static_input_shapes = {StaticShape{3}, StaticShape{}, StaticShape{}, StaticShape{}}, + static_output_shapes = {StaticShape{}}; + shape_inference(ont_hot.get(), static_input_shapes, static_output_shapes); + ASSERT_EQ(static_output_shapes[0], (StaticShape{3, 2})); +} \ No newline at end of file diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/read_value_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/read_value_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/read_value_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/read_value_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/reduce_test.cpp b/src/tests/unit/cpu/shape_inference_test/reduce_test.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/reduce_test.cpp rename to src/tests/unit/cpu/shape_inference_test/reduce_test.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/scatter_elements_update_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/scatter_elements_update_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/scatter_elements_update_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/scatter_elements_update_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/scatter_nd_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/scatter_nd_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/scatter_nd_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/scatter_nd_shape_inference.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/shape_node_tests.cpp b/src/tests/unit/cpu/shape_inference_test/shape_node_tests.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/shape_node_tests.cpp rename to src/tests/unit/cpu/shape_inference_test/shape_node_tests.cpp diff --git a/inference-engine/tests/unit/cpu/shape_inference_test/tile_shape_inference.cpp b/src/tests/unit/cpu/shape_inference_test/tile_shape_inference.cpp similarity index 100% rename from inference-engine/tests/unit/cpu/shape_inference_test/tile_shape_inference.cpp rename to src/tests/unit/cpu/shape_inference_test/tile_shape_inference.cpp diff --git a/inference-engine/tests/unit/frontends/onnx_import/CMakeLists.txt b/src/tests/unit/frontends/onnx_import/CMakeLists.txt similarity index 100% rename from inference-engine/tests/unit/frontends/onnx_import/CMakeLists.txt rename to src/tests/unit/frontends/onnx_import/CMakeLists.txt diff --git a/inference-engine/tests/unit/frontends/onnx_import/models/add_abc_initializers.prototxt b/src/tests/unit/frontends/onnx_import/models/add_abc_initializers.prototxt similarity index 100% rename from inference-engine/tests/unit/frontends/onnx_import/models/add_abc_initializers.prototxt rename to src/tests/unit/frontends/onnx_import/models/add_abc_initializers.prototxt diff --git a/inference-engine/tests/unit/frontends/onnx_import/models/addmul_abc.prototxt b/src/tests/unit/frontends/onnx_import/models/addmul_abc.prototxt similarity index 100% rename from inference-engine/tests/unit/frontends/onnx_import/models/addmul_abc.prototxt rename to src/tests/unit/frontends/onnx_import/models/addmul_abc.prototxt diff --git a/inference-engine/tests/unit/frontends/onnx_import/models/not_supported.prototxt b/src/tests/unit/frontends/onnx_import/models/not_supported.prototxt similarity index 100% rename from inference-engine/tests/unit/frontends/onnx_import/models/not_supported.prototxt rename to src/tests/unit/frontends/onnx_import/models/not_supported.prototxt diff --git a/inference-engine/tests/unit/frontends/onnx_import/models/selu.prototxt b/src/tests/unit/frontends/onnx_import/models/selu.prototxt similarity index 100% rename from inference-engine/tests/unit/frontends/onnx_import/models/selu.prototxt rename to src/tests/unit/frontends/onnx_import/models/selu.prototxt diff --git a/inference-engine/tests/unit/frontends/onnx_import/models/topk.prototxt b/src/tests/unit/frontends/onnx_import/models/topk.prototxt similarity index 100% rename from inference-engine/tests/unit/frontends/onnx_import/models/topk.prototxt rename to src/tests/unit/frontends/onnx_import/models/topk.prototxt diff --git a/inference-engine/tests/unit/frontends/onnx_import/onnx_importer_test.cpp b/src/tests/unit/frontends/onnx_import/onnx_importer_test.cpp similarity index 100% rename from inference-engine/tests/unit/frontends/onnx_import/onnx_importer_test.cpp rename to src/tests/unit/frontends/onnx_import/onnx_importer_test.cpp diff --git a/inference-engine/tests/unit/gna/CMakeLists.txt b/src/tests/unit/gna/CMakeLists.txt similarity index 100% rename from inference-engine/tests/unit/gna/CMakeLists.txt rename to src/tests/unit/gna/CMakeLists.txt diff --git a/inference-engine/tests/unit/gna/gna_allocator_test.cpp b/src/tests/unit/gna/gna_allocator_test.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_allocator_test.cpp rename to src/tests/unit/gna/gna_allocator_test.cpp diff --git a/inference-engine/tests/unit/gna/gna_api_stub.cpp b/src/tests/unit/gna/gna_api_stub.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_api_stub.cpp rename to src/tests/unit/gna/gna_api_stub.cpp diff --git a/inference-engine/tests/unit/gna/gna_get_2d_reshaped_data.cpp b/src/tests/unit/gna/gna_get_2d_reshaped_data.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_get_2d_reshaped_data.cpp rename to src/tests/unit/gna/gna_get_2d_reshaped_data.cpp diff --git a/inference-engine/tests/unit/gna/gna_get_aligned_split_sizes.cpp b/src/tests/unit/gna/gna_get_aligned_split_sizes.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_get_aligned_split_sizes.cpp rename to src/tests/unit/gna/gna_get_aligned_split_sizes.cpp diff --git a/inference-engine/tests/unit/gna/gna_get_scale_factor.cpp b/src/tests/unit/gna/gna_get_scale_factor.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_get_scale_factor.cpp rename to src/tests/unit/gna/gna_get_scale_factor.cpp diff --git a/inference-engine/tests/unit/gna/gna_memory_compact_test.cpp b/src/tests/unit/gna/gna_memory_compact_test.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_memory_compact_test.cpp rename to src/tests/unit/gna/gna_memory_compact_test.cpp diff --git a/inference-engine/tests/unit/gna/gna_memory_test.cpp b/src/tests/unit/gna/gna_memory_test.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_memory_test.cpp rename to src/tests/unit/gna/gna_memory_test.cpp diff --git a/inference-engine/tests/unit/gna/gna_mock_api.hpp b/src/tests/unit/gna/gna_mock_api.hpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_mock_api.hpp rename to src/tests/unit/gna/gna_mock_api.hpp diff --git a/inference-engine/tests/unit/gna/gna_model_serial_test.cpp b/src/tests/unit/gna/gna_model_serial_test.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_model_serial_test.cpp rename to src/tests/unit/gna/gna_model_serial_test.cpp diff --git a/inference-engine/tests/unit/gna/gna_permute_sequence_test.cpp b/src/tests/unit/gna/gna_permute_sequence_test.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_permute_sequence_test.cpp rename to src/tests/unit/gna/gna_permute_sequence_test.cpp diff --git a/inference-engine/tests/unit/gna/gna_plugin_config_test.cpp b/src/tests/unit/gna/gna_plugin_config_test.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_plugin_config_test.cpp rename to src/tests/unit/gna/gna_plugin_config_test.cpp diff --git a/inference-engine/tests/unit/gna/gna_wait_test.cpp b/src/tests/unit/gna/gna_wait_test.cpp similarity index 100% rename from inference-engine/tests/unit/gna/gna_wait_test.cpp rename to src/tests/unit/gna/gna_wait_test.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/op_eval/softsign.cpp b/src/tests/unit/gna/ngraph/op_eval/softsign.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/op_eval/softsign.cpp rename to src/tests/unit/gna/ngraph/op_eval/softsign.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_broadcast_const.cpp b/src/tests/unit/gna/ngraph/transformations/gna_broadcast_const.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_broadcast_const.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_broadcast_const.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_convert_dwsc_to_scaleshifts.cpp b/src/tests/unit/gna/ngraph/transformations/gna_convert_dwsc_to_scaleshifts.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_convert_dwsc_to_scaleshifts.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_convert_dwsc_to_scaleshifts.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_convert_matmul_to_pointwise_convolution.cpp b/src/tests/unit/gna/ngraph/transformations/gna_convert_matmul_to_pointwise_convolution.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_convert_matmul_to_pointwise_convolution.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_convert_matmul_to_pointwise_convolution.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_convert_padded_to_valid_convolution.cpp b/src/tests/unit/gna/ngraph/transformations/gna_convert_padded_to_valid_convolution.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_convert_padded_to_valid_convolution.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_convert_padded_to_valid_convolution.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_decompose_2d_convolution.cpp b/src/tests/unit/gna/ngraph/transformations/gna_decompose_2d_convolution.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_decompose_2d_convolution.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_decompose_2d_convolution.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_decompose_mvn.cpp b/src/tests/unit/gna/ngraph/transformations/gna_decompose_mvn.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_decompose_mvn.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_decompose_mvn.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_insert_reshape_around_matmul.cpp b/src/tests/unit/gna/ngraph/transformations/gna_insert_reshape_around_matmul.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_insert_reshape_around_matmul.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_insert_reshape_around_matmul.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_insert_transpose_after_convolution_or_pooling.cpp b/src/tests/unit/gna/ngraph/transformations/gna_insert_transpose_after_convolution_or_pooling.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_insert_transpose_after_convolution_or_pooling.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_insert_transpose_after_convolution_or_pooling.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_remove_extra_reshapes.cpp b/src/tests/unit/gna/ngraph/transformations/gna_remove_extra_reshapes.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_remove_extra_reshapes.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_remove_extra_reshapes.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_remove_single_input_concat.cpp b/src/tests/unit/gna/ngraph/transformations/gna_remove_single_input_concat.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_remove_single_input_concat.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_remove_single_input_concat.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_reorder_activation_and_pooling.cpp b/src/tests/unit/gna/ngraph/transformations/gna_reorder_activation_and_pooling.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_reorder_activation_and_pooling.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_reorder_activation_and_pooling.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_split_convolution_with_large_buffer_size.cpp b/src/tests/unit/gna/ngraph/transformations/gna_split_convolution_with_large_buffer_size.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_split_convolution_with_large_buffer_size.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_split_convolution_with_large_buffer_size.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_substitute_softsign.cpp b/src/tests/unit/gna/ngraph/transformations/gna_substitute_softsign.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_substitute_softsign.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_substitute_softsign.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/gna_swap_input_matmul.cpp b/src/tests/unit/gna/ngraph/transformations/gna_swap_input_matmul.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/gna_swap_input_matmul.cpp rename to src/tests/unit/gna/ngraph/transformations/gna_swap_input_matmul.cpp diff --git a/inference-engine/tests/unit/gna/ngraph/transformations/handle_transposes_around_matmul.cpp b/src/tests/unit/gna/ngraph/transformations/handle_transposes_around_matmul.cpp similarity index 100% rename from inference-engine/tests/unit/gna/ngraph/transformations/handle_transposes_around_matmul.cpp rename to src/tests/unit/gna/ngraph/transformations/handle_transposes_around_matmul.cpp diff --git a/inference-engine/tests/unit/gna/pwl.cpp b/src/tests/unit/gna/pwl.cpp similarity index 100% rename from inference-engine/tests/unit/gna/pwl.cpp rename to src/tests/unit/gna/pwl.cpp diff --git a/inference-engine/tests/unit/inference_engine/CMakeLists.txt b/src/tests/unit/inference_engine/CMakeLists.txt similarity index 100% rename from inference-engine/tests/unit/inference_engine/CMakeLists.txt rename to src/tests/unit/inference_engine/CMakeLists.txt diff --git a/inference-engine/tests/unit/inference_engine/cpp_interfaces/exception_test.cpp b/src/tests/unit/inference_engine/cpp_interfaces/exception_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/cpp_interfaces/exception_test.cpp rename to src/tests/unit/inference_engine/cpp_interfaces/exception_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_base_test.cpp b/src/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_base_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_base_test.cpp rename to src/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_base_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_thread_safe_default_test.cpp b/src/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_thread_safe_default_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_thread_safe_default_test.cpp rename to src/tests/unit/inference_engine/cpp_interfaces/ie_infer_async_request_thread_safe_default_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_memory_state_internal_test.cpp b/src/tests/unit/inference_engine/cpp_interfaces/ie_memory_state_internal_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_memory_state_internal_test.cpp rename to src/tests/unit/inference_engine/cpp_interfaces/ie_memory_state_internal_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_plugin_test.cpp b/src/tests/unit/inference_engine/cpp_interfaces/ie_plugin_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/cpp_interfaces/ie_plugin_test.cpp rename to src/tests/unit/inference_engine/cpp_interfaces/ie_plugin_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_blob_test.cpp b/src/tests/unit/inference_engine/ie_blob_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_blob_test.cpp rename to src/tests/unit/inference_engine/ie_blob_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_compilation_context_test.cpp b/src/tests/unit/inference_engine/ie_compilation_context_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_compilation_context_test.cpp rename to src/tests/unit/inference_engine/ie_compilation_context_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_compound_blob_test.cpp b/src/tests/unit/inference_engine/ie_compound_blob_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_compound_blob_test.cpp rename to src/tests/unit/inference_engine/ie_compound_blob_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_exception_test.cpp b/src/tests/unit/inference_engine/ie_exception_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_exception_test.cpp rename to src/tests/unit/inference_engine/ie_exception_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_executable_network_test.cpp b/src/tests/unit/inference_engine/ie_executable_network_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_executable_network_test.cpp rename to src/tests/unit/inference_engine/ie_executable_network_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_executor_manager_tests.cpp b/src/tests/unit/inference_engine/ie_executor_manager_tests.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_executor_manager_tests.cpp rename to src/tests/unit/inference_engine/ie_executor_manager_tests.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_extension_test.cpp b/src/tests/unit/inference_engine/ie_extension_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_extension_test.cpp rename to src/tests/unit/inference_engine/ie_extension_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/ie_locked_memory_test.cpp b/src/tests/unit/inference_engine/ie_locked_memory_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/ie_locked_memory_test.cpp rename to src/tests/unit/inference_engine/ie_locked_memory_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/memory_solver_test.cpp b/src/tests/unit/inference_engine/memory_solver_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/memory_solver_test.cpp rename to src/tests/unit/inference_engine/memory_solver_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/precision_utils_test.cpp b/src/tests/unit/inference_engine/precision_utils_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/precision_utils_test.cpp rename to src/tests/unit/inference_engine/precision_utils_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/saturated_cast_test.cpp b/src/tests/unit/inference_engine/saturated_cast_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/saturated_cast_test.cpp rename to src/tests/unit/inference_engine/saturated_cast_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/system_allocator_test.cpp b/src/tests/unit/inference_engine/system_allocator_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/system_allocator_test.cpp rename to src/tests/unit/inference_engine/system_allocator_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/transformations/low_precision/calclulate_levels_test.cpp b/src/tests/unit/inference_engine/transformations/low_precision/calclulate_levels_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/transformations/low_precision/calclulate_levels_test.cpp rename to src/tests/unit/inference_engine/transformations/low_precision/calclulate_levels_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/transformations/low_precision/reshape_test.cpp b/src/tests/unit/inference_engine/transformations/low_precision/reshape_test.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/transformations/low_precision/reshape_test.cpp rename to src/tests/unit/inference_engine/transformations/low_precision/reshape_test.cpp diff --git a/inference-engine/tests/unit/inference_engine/transformations/low_precision/update_reshape_values.cpp b/src/tests/unit/inference_engine/transformations/low_precision/update_reshape_values.cpp similarity index 100% rename from inference-engine/tests/unit/inference_engine/transformations/low_precision/update_reshape_values.cpp rename to src/tests/unit/inference_engine/transformations/low_precision/update_reshape_values.cpp diff --git a/inference-engine/tests/unit/vpu/CMakeLists.txt b/src/tests/unit/vpu/CMakeLists.txt similarity index 96% rename from inference-engine/tests/unit/vpu/CMakeLists.txt rename to src/tests/unit/vpu/CMakeLists.txt index f43866fac26..cd505a6b7e0 100644 --- a/inference-engine/tests/unit/vpu/CMakeLists.txt +++ b/src/tests/unit/vpu/CMakeLists.txt @@ -21,7 +21,6 @@ addIeTargetTest( vpu_graph_transformer_test_static mvnc ngraph - interpreter_backend inference_engine_lp_transformations # for ngraphFunctions ADD_CPPLINT LABELS diff --git a/inference-engine/tests/unit/vpu/base/graph_transformer_tests.cpp b/src/tests/unit/vpu/base/graph_transformer_tests.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/base/graph_transformer_tests.cpp rename to src/tests/unit/vpu/base/graph_transformer_tests.cpp diff --git a/inference-engine/tests/unit/vpu/base/graph_transformer_tests.hpp b/src/tests/unit/vpu/base/graph_transformer_tests.hpp similarity index 100% rename from inference-engine/tests/unit/vpu/base/graph_transformer_tests.hpp rename to src/tests/unit/vpu/base/graph_transformer_tests.hpp diff --git a/inference-engine/tests/unit/vpu/blob_reader_tests.cpp b/src/tests/unit/vpu/blob_reader_tests.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/blob_reader_tests.cpp rename to src/tests/unit/vpu/blob_reader_tests.cpp diff --git a/inference-engine/tests/unit/vpu/frontend_tests/dsr_parsing_tests.cpp b/src/tests/unit/vpu/frontend_tests/dsr_parsing_tests.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/frontend_tests/dsr_parsing_tests.cpp rename to src/tests/unit/vpu/frontend_tests/dsr_parsing_tests.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/edges_tests/data_to_shape_edge.cpp b/src/tests/unit/vpu/middleend_tests/edges_tests/data_to_shape_edge.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/edges_tests/data_to_shape_edge.cpp rename to src/tests/unit/vpu/middleend_tests/edges_tests/data_to_shape_edge.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/edges_tests/stage_dependency_edge.cpp b/src/tests/unit/vpu/middleend_tests/edges_tests/stage_dependency_edge.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/edges_tests/stage_dependency_edge.cpp rename to src/tests/unit/vpu/middleend_tests/edges_tests/stage_dependency_edge.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/add_copy_for_outputs_inside_network.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/add_copy_for_outputs_inside_network.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/add_copy_for_outputs_inside_network.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/add_copy_for_outputs_inside_network.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/adjust_data_batch_tests.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/adjust_data_batch_tests.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/adjust_data_batch_tests.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/adjust_data_batch_tests.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/adjust_dynamic_batch.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/adjust_dynamic_batch.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/adjust_dynamic_batch.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/adjust_dynamic_batch.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/annotate_memory_types.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/annotate_memory_types.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/annotate_memory_types.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/annotate_memory_types.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/convert_shape_notation.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/convert_shape_notation.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/convert_shape_notation.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/convert_shape_notation.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/inject_sw.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/inject_sw.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/inject_sw.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/inject_sw.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/mark_fast_stages.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/mark_fast_stages.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/mark_fast_stages.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/mark_fast_stages.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/split_large_kernel_conv_tests.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/split_large_kernel_conv_tests.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/split_large_kernel_conv_tests.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/split_large_kernel_conv_tests.cpp diff --git a/inference-engine/tests/unit/vpu/middleend_tests/passes_tests/vpu_scale_tests.cpp b/src/tests/unit/vpu/middleend_tests/passes_tests/vpu_scale_tests.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/middleend_tests/passes_tests/vpu_scale_tests.cpp rename to src/tests/unit/vpu/middleend_tests/passes_tests/vpu_scale_tests.cpp diff --git a/inference-engine/tests/unit/vpu/utils_tests/heap_test.cpp b/src/tests/unit/vpu/utils_tests/heap_test.cpp similarity index 100% rename from inference-engine/tests/unit/vpu/utils_tests/heap_test.cpp rename to src/tests/unit/vpu/utils_tests/heap_test.cpp diff --git a/inference-engine/tests_deprecated/CMakeLists.txt b/src/tests_deprecated/CMakeLists.txt similarity index 72% rename from inference-engine/tests_deprecated/CMakeLists.txt rename to src/tests_deprecated/CMakeLists.txt index 996b8796461..3330beb8def 100644 --- a/inference-engine/tests_deprecated/CMakeLists.txt +++ b/src/tests_deprecated/CMakeLists.txt @@ -5,7 +5,11 @@ enable_testing() if(NOT MSVC) + ie_add_compiler_flags(-Wno-missing-declarations) + ie_add_compiler_flags(-Wno-sign-compare) + ie_add_compiler_flags(-Wno-all) ie_add_compiler_flags(-Wno-unused-variable) + ie_add_compiler_flags(-Wno-unused-function) endif() add_subdirectory(readers) diff --git a/inference-engine/tests_deprecated/behavior/CMakeLists.txt b/src/tests_deprecated/behavior/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/behavior/CMakeLists.txt rename to src/tests_deprecated/behavior/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/behavior/shared_tests/CMakeLists.txt b/src/tests_deprecated/behavior/shared_tests/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/behavior/shared_tests/CMakeLists.txt rename to src/tests_deprecated/behavior/shared_tests/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.cpp b/src/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.cpp rename to src/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.cpp diff --git a/inference-engine/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.h b/src/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.h similarity index 100% rename from inference-engine/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.h rename to src/tests_deprecated/behavior/shared_tests/plugin_tests/behavior_test_plugin.h diff --git a/inference-engine/tests_deprecated/behavior/vpu/CMakeLists.txt b/src/tests_deprecated/behavior/vpu/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/CMakeLists.txt rename to src/tests_deprecated/behavior/vpu/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/aot_behavior_tests.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/aot_behavior_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/aot_behavior_tests.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/aot_behavior_tests.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.hpp b/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.hpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.hpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_devices.hpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.hpp b/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.hpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.hpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_load_network_case.hpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.hpp b/src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.hpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.hpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/helpers/myriad_protocol_case.hpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_boot_tests.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/vpu_boot_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_boot_tests.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/vpu_boot_tests.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_get_metric_tests.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/vpu_get_metric_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_get_metric_tests.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/vpu_get_metric_tests.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_load_network_tests.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/vpu_load_network_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_load_network_tests.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/vpu_load_network_tests.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_protocol_tests.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/vpu_protocol_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_protocol_tests.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/vpu_protocol_tests.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_watchdog_tests.cpp b/src/tests_deprecated/behavior/vpu/myriad_tests/vpu_watchdog_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/myriad_tests/vpu_watchdog_tests.cpp rename to src/tests_deprecated/behavior/vpu/myriad_tests/vpu_watchdog_tests.cpp diff --git a/inference-engine/tests_deprecated/behavior/vpu/shared_tests_instances/plugin_tests/vpu_test_data.hpp b/src/tests_deprecated/behavior/vpu/shared_tests_instances/plugin_tests/vpu_test_data.hpp similarity index 100% rename from inference-engine/tests_deprecated/behavior/vpu/shared_tests_instances/plugin_tests/vpu_test_data.hpp rename to src/tests_deprecated/behavior/vpu/shared_tests_instances/plugin_tests/vpu_test_data.hpp diff --git a/inference-engine/tests_deprecated/fluid_preproc/CMakeLists.txt b/src/tests_deprecated/fluid_preproc/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/fluid_preproc/CMakeLists.txt rename to src/tests_deprecated/fluid_preproc/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/fluid_preproc/common/fluid_tests.cpp b/src/tests_deprecated/fluid_preproc/common/fluid_tests.cpp similarity index 99% rename from inference-engine/tests_deprecated/fluid_preproc/common/fluid_tests.cpp rename to src/tests_deprecated/fluid_preproc/common/fluid_tests.cpp index f883e722348..a02d5d0154f 100644 --- a/inference-engine/tests_deprecated/fluid_preproc/common/fluid_tests.cpp +++ b/src/tests_deprecated/fluid_preproc/common/fluid_tests.cpp @@ -971,7 +971,6 @@ TEST_P(ColorConvertYUV420TestIE, AccuracyTest) const int depth = CV_8U; auto in_fmt = ColorFormat::NV12; const auto out_fmt = ColorFormat::BGR; // for now, always BGR - const auto in_layout = Layout::NCHW; auto out_layout = Layout::ANY; cv::Size size; double tolerance = 0.0; @@ -996,8 +995,6 @@ TEST_P(ColorConvertYUV420TestIE, AccuracyTest) ASSERT_TRUE(in_mat_y.isContinuous() && out_mat.isContinuous()); - const Precision precision = Precision::U8; - auto make_nv12_blob = [&](){ auto y_blob = img2Blob(in_mat_y, Layout::NHWC); auto uv_blob = img2Blob(in_mat_uv, Layout::NHWC); @@ -1032,6 +1029,7 @@ TEST_P(ColorConvertYUV420TestIE, AccuracyTest) Blob2Img(out_blob, out_mat, out_layout); #if PERF_TEST + const auto in_layout = Layout::NCHW; // iterate testing, and print performance test_ms([&](){ preprocess->execute(out_blob, info, false); }, 100, "Color Convert IE %s %s %s %dx%d %s->%s", diff --git a/inference-engine/tests_deprecated/fluid_preproc/common/fluid_tests.hpp b/src/tests_deprecated/fluid_preproc/common/fluid_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/fluid_preproc/common/fluid_tests.hpp rename to src/tests_deprecated/fluid_preproc/common/fluid_tests.hpp diff --git a/inference-engine/tests_deprecated/fluid_preproc/common/fluid_tests_common.hpp b/src/tests_deprecated/fluid_preproc/common/fluid_tests_common.hpp similarity index 100% rename from inference-engine/tests_deprecated/fluid_preproc/common/fluid_tests_common.hpp rename to src/tests_deprecated/fluid_preproc/common/fluid_tests_common.hpp diff --git a/inference-engine/tests_deprecated/fluid_preproc/cpu/fluid_tests_cpu.cpp b/src/tests_deprecated/fluid_preproc/cpu/fluid_tests_cpu.cpp similarity index 100% rename from inference-engine/tests_deprecated/fluid_preproc/cpu/fluid_tests_cpu.cpp rename to src/tests_deprecated/fluid_preproc/cpu/fluid_tests_cpu.cpp diff --git a/inference-engine/tests_deprecated/fluid_preproc/fluid_test_computations/CMakeLists.txt b/src/tests_deprecated/fluid_preproc/fluid_test_computations/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/fluid_preproc/fluid_test_computations/CMakeLists.txt rename to src/tests_deprecated/fluid_preproc/fluid_test_computations/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.cpp b/src/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.cpp similarity index 100% rename from inference-engine/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.cpp rename to src/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.cpp diff --git a/inference-engine/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.hpp b/src/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.hpp similarity index 100% rename from inference-engine/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.hpp rename to src/tests_deprecated/fluid_preproc/fluid_test_computations/fluid_test_computations.hpp diff --git a/inference-engine/tests_deprecated/functional/CMakeLists.txt b/src/tests_deprecated/functional/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/functional/CMakeLists.txt rename to src/tests_deprecated/functional/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/functional/gna/CMakeLists.txt b/src/tests_deprecated/functional/gna/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/functional/gna/CMakeLists.txt rename to src/tests_deprecated/functional/gna/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/functional/gna/backward_compatibility/backward_compatibility.cpp b/src/tests_deprecated/functional/gna/backward_compatibility/backward_compatibility.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/gna/backward_compatibility/backward_compatibility.cpp rename to src/tests_deprecated/functional/gna/backward_compatibility/backward_compatibility.cpp diff --git a/inference-engine/tests_deprecated/functional/gna/shared_tests_instance/input_tests/parser_tests.cpp b/src/tests_deprecated/functional/gna/shared_tests_instance/input_tests/parser_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/gna/shared_tests_instance/input_tests/parser_tests.cpp rename to src/tests_deprecated/functional/gna/shared_tests_instance/input_tests/parser_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/gna/shared_tests_instance/lstm/lstm_cell_test.cpp b/src/tests_deprecated/functional/gna/shared_tests_instance/lstm/lstm_cell_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/gna/shared_tests_instance/lstm/lstm_cell_test.cpp rename to src/tests_deprecated/functional/gna/shared_tests_instance/lstm/lstm_cell_test.cpp diff --git a/inference-engine/tests_deprecated/functional/gna/shared_tests_instance/single_layer_tests/ti_tests.cpp b/src/tests_deprecated/functional/gna/shared_tests_instance/single_layer_tests/ti_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/gna/shared_tests_instance/single_layer_tests/ti_tests.cpp rename to src/tests_deprecated/functional/gna/shared_tests_instance/single_layer_tests/ti_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/gna/test_model_repo.cpp b/src/tests_deprecated/functional/gna/test_model_repo.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/gna/test_model_repo.cpp rename to src/tests_deprecated/functional/gna/test_model_repo.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/CMakeLists.txt b/src/tests_deprecated/functional/shared_tests/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/CMakeLists.txt rename to src/tests_deprecated/functional/shared_tests/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.cpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.cpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.hpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.hpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/conv_ref.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.cpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.cpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.hpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.hpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/deconv_ref.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.cpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.cpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.hpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.hpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/def_conv_ref.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.cpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.cpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.hpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.hpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/pool_ref.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/single_layer_tests.hpp b/src/tests_deprecated/functional/shared_tests/common_single_layer_tests/single_layer_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/common_single_layer_tests/single_layer_tests.hpp rename to src/tests_deprecated/functional/shared_tests/common_single_layer_tests/single_layer_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/input_tests/parser_tests.hpp b/src/tests_deprecated/functional/shared_tests/input_tests/parser_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/input_tests/parser_tests.hpp rename to src/tests_deprecated/functional/shared_tests/input_tests/parser_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/io_blob_tests/cropResize_tests.hpp b/src/tests_deprecated/functional/shared_tests/io_blob_tests/cropResize_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/io_blob_tests/cropResize_tests.hpp rename to src/tests_deprecated/functional/shared_tests/io_blob_tests/cropResize_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/io_blob_tests/dims_tests.hpp b/src/tests_deprecated/functional/shared_tests/io_blob_tests/dims_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/io_blob_tests/dims_tests.hpp rename to src/tests_deprecated/functional/shared_tests/io_blob_tests/dims_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/io_blob_tests/layout_tests.hpp b/src/tests_deprecated/functional/shared_tests/io_blob_tests/layout_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/io_blob_tests/layout_tests.hpp rename to src/tests_deprecated/functional/shared_tests/io_blob_tests/layout_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/lstm_cell_test.hpp b/src/tests_deprecated/functional/shared_tests/lstm/lstm_cell_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/lstm_cell_test.hpp rename to src/tests_deprecated/functional/shared_tests/lstm/lstm_cell_test.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/npy.hpp b/src/tests_deprecated/functional/shared_tests/lstm/npy.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/npy.hpp rename to src/tests_deprecated/functional/shared_tests/lstm/npy.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/plg_test.hpp b/src/tests_deprecated/functional/shared_tests/lstm/plg_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/plg_test.hpp rename to src/tests_deprecated/functional/shared_tests/lstm/plg_test.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_gen.cpp b/src/tests_deprecated/functional/shared_tests/lstm/rnn_gen.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_gen.cpp rename to src/tests_deprecated/functional/shared_tests/lstm/rnn_gen.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_gen.hpp b/src/tests_deprecated/functional/shared_tests/lstm/rnn_gen.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_gen.hpp rename to src/tests_deprecated/functional/shared_tests/lstm/rnn_gen.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_referee.cpp b/src/tests_deprecated/functional/shared_tests/lstm/rnn_referee.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_referee.cpp rename to src/tests_deprecated/functional/shared_tests/lstm/rnn_referee.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_referee.hpp b/src/tests_deprecated/functional/shared_tests/lstm/rnn_referee.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_referee.hpp rename to src/tests_deprecated/functional/shared_tests/lstm/rnn_referee.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_seq_test.hpp b/src/tests_deprecated/functional/shared_tests/lstm/rnn_seq_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_seq_test.hpp rename to src/tests_deprecated/functional/shared_tests/lstm/rnn_seq_test.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_util.cpp b/src/tests_deprecated/functional/shared_tests/lstm/rnn_util.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_util.cpp rename to src/tests_deprecated/functional/shared_tests/lstm/rnn_util.cpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_util.hpp b/src/tests_deprecated/functional/shared_tests/lstm/rnn_util.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/lstm/rnn_util.hpp rename to src/tests_deprecated/functional/shared_tests/lstm/rnn_util.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/precomp.hpp b/src/tests_deprecated/functional/shared_tests/precomp.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/precomp.hpp rename to src/tests_deprecated/functional/shared_tests/precomp.hpp diff --git a/inference-engine/tests_deprecated/functional/shared_tests/single_layer_tests/ti_tests.hpp b/src/tests_deprecated/functional/shared_tests/single_layer_tests/ti_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/shared_tests/single_layer_tests/ti_tests.hpp rename to src/tests_deprecated/functional/shared_tests/single_layer_tests/ti_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/CMakeLists.txt b/src/tests_deprecated/functional/vpu/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/CMakeLists.txt rename to src/tests_deprecated/functional/vpu/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/functional/vpu/common/bbox_util.cpp b/src/tests_deprecated/functional/vpu/common/bbox_util.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/bbox_util.cpp rename to src/tests_deprecated/functional/vpu/common/bbox_util.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/bbox_util.h b/src/tests_deprecated/functional/vpu/common/bbox_util.h similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/bbox_util.h rename to src/tests_deprecated/functional/vpu/common/bbox_util.h diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_CTCDecoder_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_batch_normalization_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_bias_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_blob_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_blob_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_blob_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_blob_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_clamp_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_concat_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_conv_nd_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convert_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution1x1.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution3x3.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_convolution_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_copy_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_crop_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_custom_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_deconvolution_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_detection_output_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_detection_output_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_detection_output_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_detection_output_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_eltwise_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_elu_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_erf_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_detectionoutput_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_generateproposals_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_priorgridgenerator_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_exp_topkrois_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_flatten_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_floor_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_fully_connected_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_gemm_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_grn_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_interp_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_log_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lrn_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_lstm_cell.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_mvn_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_nonzero_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_normalize_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_oneHot_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pad_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_nd_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_permute_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pool_nd_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_pooling_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_power_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prelu_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_clustered_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_clustered_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_clustered_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_clustered_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_prior_box_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_proposal_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_proposal_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_proposal_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_proposal_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_psroipooling_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reduce_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_region_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_relu_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reorg_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_resample_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reshape_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_reverse_sequence_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_rfcn_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_rfcn_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_rfcn_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_rfcn_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_align_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_feature_extractor_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_roi_pooling_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scale_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_elements_update_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_scatter_update_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_select_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_sigmoid_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_slice_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_softmax_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_split_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_squeeze_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.h b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.h similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.h rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_strided_slice_test.h diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tanh_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_tile_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_topk_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.cpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.cpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.hpp b/src/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.hpp rename to src/tests_deprecated/functional/vpu/common/layers/myriad_layers_unsqueeze_test.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/layers/weights_for_convolution_test.h b/src/tests_deprecated/functional/vpu/common/layers/weights_for_convolution_test.h similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/layers/weights_for_convolution_test.h rename to src/tests_deprecated/functional/vpu/common/layers/weights_for_convolution_test.h diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_get_output_tests.cpp b/src/tests_deprecated/functional/vpu/common/myriad_get_output_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_get_output_tests.cpp rename to src/tests_deprecated/functional/vpu/common/myriad_get_output_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_get_output_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_get_output_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_get_output_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_get_output_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_get_perf_count_tests.cpp b/src/tests_deprecated/functional/vpu/common/myriad_get_perf_count_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_get_perf_count_tests.cpp rename to src/tests_deprecated/functional/vpu/common/myriad_get_perf_count_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_conv_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_conv_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_conv_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_conv_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_extra_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_extra_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_extra_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_extra_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_fc_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_fc_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_fc_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_fc_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_network_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_network_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_network_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_network_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.cpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.cpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_opt_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_pool_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_pool_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_pool_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_pool_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_tests_base.hpp b/src/tests_deprecated/functional/vpu/common/myriad_hw_tests_base.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_hw_tests_base.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_hw_tests_base.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_infer_tests.cpp b/src/tests_deprecated/functional/vpu/common/myriad_infer_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_infer_tests.cpp rename to src/tests_deprecated/functional/vpu/common/myriad_infer_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.cpp b/src/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.cpp rename to src/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_merge_permute_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/myriad_xml_tests.hpp b/src/tests_deprecated/functional/vpu/common/myriad_xml_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/myriad_xml_tests.hpp rename to src/tests_deprecated/functional/vpu/common/myriad_xml_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/reference_regression.cpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/reference_regression.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/reference_regression.cpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/reference_regression.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.cpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.cpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.hpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.hpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_common.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_params.hpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_params.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_params.hpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_case_params.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.cpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.cpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.hpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.hpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_classification_case.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.cpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.cpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.hpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.hpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_param_containers.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.cpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.cpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.hpp b/src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.hpp rename to src/tests_deprecated/functional/vpu/common/regression/helpers/vpu_raw_results_case.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.cpp b/src/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.cpp rename to src/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.hpp b/src/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.hpp rename to src/tests_deprecated/functional/vpu/graph_transformer/gt_functional_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/graph_transformer/merge_permute_and_reorder_test.cpp b/src/tests_deprecated/functional/vpu/graph_transformer/merge_permute_and_reorder_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/graph_transformer/merge_permute_and_reorder_test.cpp rename to src/tests_deprecated/functional/vpu/graph_transformer/merge_permute_and_reorder_test.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/myriad_tests/myriad_configs_tests.cpp b/src/tests_deprecated/functional/vpu/myriad_tests/myriad_configs_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/myriad_tests/myriad_configs_tests.cpp rename to src/tests_deprecated/functional/vpu/myriad_tests/myriad_configs_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/myriad_tests/myriad_multiple_graph_tests.cpp b/src/tests_deprecated/functional/vpu/myriad_tests/myriad_multiple_graph_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/myriad_tests/myriad_multiple_graph_tests.cpp rename to src/tests_deprecated/functional/vpu/myriad_tests/myriad_multiple_graph_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/myriad_tests/myriad_streams_configuration_tests.cpp b/src/tests_deprecated/functional/vpu/myriad_tests/myriad_streams_configuration_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/myriad_tests/myriad_streams_configuration_tests.cpp rename to src/tests_deprecated/functional/vpu/myriad_tests/myriad_streams_configuration_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/myriad_tests/vpu_tests_config.cpp b/src/tests_deprecated/functional/vpu/myriad_tests/vpu_tests_config.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/myriad_tests/vpu_tests_config.cpp rename to src/tests_deprecated/functional/vpu/myriad_tests/vpu_tests_config.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/common_single_layer_tests/single_layer_tests.cpp b/src/tests_deprecated/functional/vpu/shared_tests_instance/common_single_layer_tests/single_layer_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/common_single_layer_tests/single_layer_tests.cpp rename to src/tests_deprecated/functional/vpu/shared_tests_instance/common_single_layer_tests/single_layer_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/input_tests/parser_tests.cpp b/src/tests_deprecated/functional/vpu/shared_tests_instance/input_tests/parser_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/input_tests/parser_tests.cpp rename to src/tests_deprecated/functional/vpu/shared_tests_instance/input_tests/parser_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/cropResize_tests.cpp b/src/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/cropResize_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/cropResize_tests.cpp rename to src/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/cropResize_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/dims_tests.cpp b/src/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/dims_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/dims_tests.cpp rename to src/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/dims_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/layout_tests.cpp b/src/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/layout_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/layout_tests.cpp rename to src/tests_deprecated/functional/vpu/shared_tests_instance/io_blob_tests/layout_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/test_data/test_model_repo.cpp b/src/tests_deprecated/functional/vpu/test_data/test_model_repo.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/test_data/test_model_repo.cpp rename to src/tests_deprecated/functional/vpu/test_data/test_model_repo.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/tester.py b/src/tests_deprecated/functional/vpu/tester.py similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/tester.py rename to src/tests_deprecated/functional/vpu/tester.py diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.cpp b/src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.cpp rename to src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.hpp b/src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_reference_functions.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.cpp b/src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.cpp rename to src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.hpp b/src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/myriad_layers_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.cpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.cpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.hpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_ir_dumper.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.cpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.cpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.hpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_layer_tests_utils.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.cpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.cpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.hpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_layers_tests.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_test_common_definitions.hpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_test_common_definitions.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_test_common_definitions.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_test_common_definitions.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.cpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.cpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.cpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.cpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.hpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_test_net.hpp diff --git a/inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_tests_config.hpp b/src/tests_deprecated/functional/vpu/vpu_base/vpu_tests_config.hpp similarity index 100% rename from inference-engine/tests_deprecated/functional/vpu/vpu_base/vpu_tests_config.hpp rename to src/tests_deprecated/functional/vpu/vpu_base/vpu_tests_config.hpp diff --git a/inference-engine/tests_deprecated/helpers/CMakeLists.txt b/src/tests_deprecated/helpers/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/helpers/CMakeLists.txt rename to src/tests_deprecated/helpers/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/helpers/common_layers_params.cpp b/src/tests_deprecated/helpers/common_layers_params.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/common_layers_params.cpp rename to src/tests_deprecated/helpers/common_layers_params.cpp diff --git a/inference-engine/tests_deprecated/helpers/common_layers_params.hpp b/src/tests_deprecated/helpers/common_layers_params.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/common_layers_params.hpp rename to src/tests_deprecated/helpers/common_layers_params.hpp diff --git a/inference-engine/tests_deprecated/helpers/ie_core_adapter.cpp b/src/tests_deprecated/helpers/ie_core_adapter.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/ie_core_adapter.cpp rename to src/tests_deprecated/helpers/ie_core_adapter.cpp diff --git a/inference-engine/tests_deprecated/helpers/ie_core_adapter.hpp b/src/tests_deprecated/helpers/ie_core_adapter.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/ie_core_adapter.hpp rename to src/tests_deprecated/helpers/ie_core_adapter.hpp diff --git a/inference-engine/tests_deprecated/helpers/single_layer_common.cpp b/src/tests_deprecated/helpers/single_layer_common.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/single_layer_common.cpp rename to src/tests_deprecated/helpers/single_layer_common.cpp diff --git a/inference-engine/tests_deprecated/helpers/single_layer_common.hpp b/src/tests_deprecated/helpers/single_layer_common.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/single_layer_common.hpp rename to src/tests_deprecated/helpers/single_layer_common.hpp diff --git a/inference-engine/tests_deprecated/helpers/test_model_path.cpp b/src/tests_deprecated/helpers/test_model_path.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/test_model_path.cpp rename to src/tests_deprecated/helpers/test_model_path.cpp diff --git a/inference-engine/tests_deprecated/helpers/test_model_path.hpp b/src/tests_deprecated/helpers/test_model_path.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/test_model_path.hpp rename to src/tests_deprecated/helpers/test_model_path.hpp diff --git a/inference-engine/tests_deprecated/helpers/test_model_repo.hpp b/src/tests_deprecated/helpers/test_model_repo.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/test_model_repo.hpp rename to src/tests_deprecated/helpers/test_model_repo.hpp diff --git a/inference-engine/tests_deprecated/helpers/tests_common.cpp b/src/tests_deprecated/helpers/tests_common.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/tests_common.cpp rename to src/tests_deprecated/helpers/tests_common.cpp diff --git a/inference-engine/tests_deprecated/helpers/tests_common.hpp b/src/tests_deprecated/helpers/tests_common.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/tests_common.hpp rename to src/tests_deprecated/helpers/tests_common.hpp diff --git a/inference-engine/tests_deprecated/helpers/tests_file_utils.cpp b/src/tests_deprecated/helpers/tests_file_utils.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/tests_file_utils.cpp rename to src/tests_deprecated/helpers/tests_file_utils.cpp diff --git a/inference-engine/tests_deprecated/helpers/tests_file_utils.hpp b/src/tests_deprecated/helpers/tests_file_utils.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/tests_file_utils.hpp rename to src/tests_deprecated/helpers/tests_file_utils.hpp diff --git a/inference-engine/tests_deprecated/helpers/tests_vpu_common.hpp b/src/tests_deprecated/helpers/tests_vpu_common.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/tests_vpu_common.hpp rename to src/tests_deprecated/helpers/tests_vpu_common.hpp diff --git a/inference-engine/tests_deprecated/helpers/version_printer.cpp b/src/tests_deprecated/helpers/version_printer.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/version_printer.cpp rename to src/tests_deprecated/helpers/version_printer.cpp diff --git a/inference-engine/tests_deprecated/helpers/xml_father.hpp b/src/tests_deprecated/helpers/xml_father.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/xml_father.hpp rename to src/tests_deprecated/helpers/xml_father.hpp diff --git a/inference-engine/tests_deprecated/helpers/xml_net_builder.cpp b/src/tests_deprecated/helpers/xml_net_builder.cpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/xml_net_builder.cpp rename to src/tests_deprecated/helpers/xml_net_builder.cpp diff --git a/inference-engine/tests_deprecated/helpers/xml_net_builder.hpp b/src/tests_deprecated/helpers/xml_net_builder.hpp similarity index 100% rename from inference-engine/tests_deprecated/helpers/xml_net_builder.hpp rename to src/tests_deprecated/helpers/xml_net_builder.hpp diff --git a/inference-engine/tests_deprecated/readers/CMakeLists.txt b/src/tests_deprecated/readers/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/readers/CMakeLists.txt rename to src/tests_deprecated/readers/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/CMakeLists.txt b/src/tests_deprecated/readers/ir_reader_v7/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/CMakeLists.txt rename to src/tests_deprecated/readers/ir_reader_v7/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_blob_proxy.hpp b/src/tests_deprecated/readers/ir_reader_v7/ie_blob_proxy.hpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_blob_proxy.hpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_blob_proxy.hpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.cpp b/src/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.cpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.cpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.cpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.h b/src/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.h similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.h rename to src/tests_deprecated/readers/ir_reader_v7/ie_cnn_net_reader_impl.h diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_format_parser.cpp b/src/tests_deprecated/readers/ir_reader_v7/ie_format_parser.cpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_format_parser.cpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_format_parser.cpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_format_parser.h b/src/tests_deprecated/readers/ir_reader_v7/ie_format_parser.h similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_format_parser.h rename to src/tests_deprecated/readers/ir_reader_v7/ie_format_parser.h diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_itt.hpp b/src/tests_deprecated/readers/ir_reader_v7/ie_ir_itt.hpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_itt.hpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_ir_itt.hpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.cpp b/src/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.cpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.cpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.cpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.hpp b/src/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.hpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.hpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_ir_parser.hpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.cpp b/src/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.cpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.cpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.cpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.hpp b/src/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.hpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.hpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_ir_reader.hpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.cpp b/src/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.cpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.cpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.cpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.h b/src/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.h similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.h rename to src/tests_deprecated/readers/ir_reader_v7/ie_layer_parsers.h diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.cpp b/src/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.cpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.cpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.cpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.hpp b/src/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.hpp similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.hpp rename to src/tests_deprecated/readers/ir_reader_v7/ie_layer_validators.hpp diff --git a/inference-engine/tests_deprecated/readers/ir_reader_v7/parsers.h b/src/tests_deprecated/readers/ir_reader_v7/parsers.h similarity index 100% rename from inference-engine/tests_deprecated/readers/ir_reader_v7/parsers.h rename to src/tests_deprecated/readers/ir_reader_v7/parsers.h diff --git a/inference-engine/tests_deprecated/unit/CMakeLists.txt b/src/tests_deprecated/unit/CMakeLists.txt similarity index 100% rename from inference-engine/tests_deprecated/unit/CMakeLists.txt rename to src/tests_deprecated/unit/CMakeLists.txt diff --git a/inference-engine/tests_deprecated/unit/engines/gna/I8_quantisation_test.cpp b/src/tests_deprecated/unit/engines/gna/I8_quantisation_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/I8_quantisation_test.cpp rename to src/tests_deprecated/unit/engines/gna/I8_quantisation_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/configuration_test.cpp b/src/tests_deprecated/unit/engines/gna/configuration_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/configuration_test.cpp rename to src/tests_deprecated/unit/engines/gna/configuration_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/fp32_non_quantized_tests.cpp b/src/tests_deprecated/unit/engines/gna/fp32_non_quantized_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/fp32_non_quantized_tests.cpp rename to src/tests_deprecated/unit/engines/gna/fp32_non_quantized_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_aminteldnn_test.cpp b/src/tests_deprecated/unit/engines/gna/gna_aminteldnn_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_aminteldnn_test.cpp rename to src/tests_deprecated/unit/engines/gna/gna_aminteldnn_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_api_stub.cpp b/src/tests_deprecated/unit/engines/gna/gna_api_stub.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_api_stub.cpp rename to src/tests_deprecated/unit/engines/gna/gna_api_stub.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_cppwrapper_test.cpp b/src/tests_deprecated/unit/engines/gna/gna_cppwrapper_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_cppwrapper_test.cpp rename to src/tests_deprecated/unit/engines/gna/gna_cppwrapper_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_graph_aot_test.cpp b/src/tests_deprecated/unit/engines/gna/gna_graph_aot_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_graph_aot_test.cpp rename to src/tests_deprecated/unit/engines/gna/gna_graph_aot_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_hardware_precision_test.cpp b/src/tests_deprecated/unit/engines/gna/gna_hardware_precision_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_hardware_precision_test.cpp rename to src/tests_deprecated/unit/engines/gna/gna_hardware_precision_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_input_precision_test.cpp b/src/tests_deprecated/unit/engines/gna/gna_input_precision_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_input_precision_test.cpp rename to src/tests_deprecated/unit/engines/gna/gna_input_precision_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_matcher.cpp b/src/tests_deprecated/unit/engines/gna/gna_matcher.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_matcher.cpp rename to src/tests_deprecated/unit/engines/gna/gna_matcher.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_matcher.hpp b/src/tests_deprecated/unit/engines/gna/gna_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/gna_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_mock_api.hpp b/src/tests_deprecated/unit/engines/gna/gna_mock_api.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_mock_api.hpp rename to src/tests_deprecated/unit/engines/gna/gna_mock_api.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_proc_type_test.cpp b/src/tests_deprecated/unit/engines/gna/gna_proc_type_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_proc_type_test.cpp rename to src/tests_deprecated/unit/engines/gna/gna_proc_type_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/gna_pwl_test.cpp b/src/tests_deprecated/unit/engines/gna/gna_pwl_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/gna_pwl_test.cpp rename to src/tests_deprecated/unit/engines/gna/gna_pwl_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/graph_tools/graph_copy_tests.cpp b/src/tests_deprecated/unit/engines/gna/graph_tools/graph_copy_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/graph_tools/graph_copy_tests.cpp rename to src/tests_deprecated/unit/engines/gna/graph_tools/graph_copy_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/graph_tools/graph_test_base.hpp b/src/tests_deprecated/unit/engines/gna/graph_tools/graph_test_base.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/graph_tools/graph_test_base.hpp rename to src/tests_deprecated/unit/engines/gna/graph_tools/graph_test_base.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/graph_tools/graph_tools_test.cpp b/src/tests_deprecated/unit/engines/gna/graph_tools/graph_tools_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/graph_tools/graph_tools_test.cpp rename to src/tests_deprecated/unit/engines/gna/graph_tools/graph_tools_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/i16_quantisation_test.cpp b/src/tests_deprecated/unit/engines/gna/i16_quantisation_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/i16_quantisation_test.cpp rename to src/tests_deprecated/unit/engines/gna/i16_quantisation_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/gna_align_filter2_tests.cpp b/src/tests_deprecated/unit/engines/gna/layers/gna_align_filter2_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/gna_align_filter2_tests.cpp rename to src/tests_deprecated/unit/engines/gna/layers/gna_align_filter2_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/gna_conv1d_test.cpp b/src/tests_deprecated/unit/engines/gna/layers/gna_conv1d_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/gna_conv1d_test.cpp rename to src/tests_deprecated/unit/engines/gna/layers/gna_conv1d_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/gna_eltwise_test.cpp b/src/tests_deprecated/unit/engines/gna/layers/gna_eltwise_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/gna_eltwise_test.cpp rename to src/tests_deprecated/unit/engines/gna/layers/gna_eltwise_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/gna_multi_input_to_concat_test.cpp b/src/tests_deprecated/unit/engines/gna/layers/gna_multi_input_to_concat_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/gna_multi_input_to_concat_test.cpp rename to src/tests_deprecated/unit/engines/gna/layers/gna_multi_input_to_concat_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/gna_permute_test.cpp b/src/tests_deprecated/unit/engines/gna/layers/gna_permute_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/gna_permute_test.cpp rename to src/tests_deprecated/unit/engines/gna/layers/gna_permute_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/gna_split_to_concat_test.cpp b/src/tests_deprecated/unit/engines/gna/layers/gna_split_to_concat_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/gna_split_to_concat_test.cpp rename to src/tests_deprecated/unit/engines/gna/layers/gna_split_to_concat_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/gna_squeeze_test.cpp b/src/tests_deprecated/unit/engines/gna/layers/gna_squeeze_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/gna_squeeze_test.cpp rename to src/tests_deprecated/unit/engines/gna/layers/gna_squeeze_test.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/layers/permute_irs.hpp b/src/tests_deprecated/unit/engines/gna/layers/permute_irs.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/layers/permute_irs.hpp rename to src/tests_deprecated/unit/engines/gna/layers/permute_irs.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/conv_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/conv_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/conv_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/conv_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/copy_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/copy_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/copy_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/copy_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/diag_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/diag_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/diag_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/diag_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/fill_with_data.hpp b/src/tests_deprecated/unit/engines/gna/matchers/fill_with_data.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/fill_with_data.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/fill_with_data.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/input_data_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/input_data_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/input_data_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/input_data_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/nnet_base_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/nnet_base_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/nnet_base_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/nnet_base_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/pool_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/pool_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/pool_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/pool_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/precision_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/precision_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/precision_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/precision_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/pwl_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/pwl_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/pwl_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/pwl_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/pwl_quantization_metrics_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/pwl_quantization_metrics_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/pwl_quantization_metrics_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/pwl_quantization_metrics_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/matchers/weights_matcher.hpp b/src/tests_deprecated/unit/engines/gna/matchers/weights_matcher.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/matchers/weights_matcher.hpp rename to src/tests_deprecated/unit/engines/gna/matchers/weights_matcher.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/test_irs.cpp b/src/tests_deprecated/unit/engines/gna/test_irs.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/test_irs.cpp rename to src/tests_deprecated/unit/engines/gna/test_irs.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/gna/test_irs.hpp b/src/tests_deprecated/unit/engines/gna/test_irs.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/gna/test_irs.hpp rename to src/tests_deprecated/unit/engines/gna/test_irs.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/adjust_data_batch_tests.cpp b/src/tests_deprecated/unit/engines/vpu/adjust_data_batch_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/adjust_data_batch_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/adjust_data_batch_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/adjust_data_location_tests.cpp b/src/tests_deprecated/unit/engines/vpu/adjust_data_location_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/adjust_data_location_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/adjust_data_location_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/attributes_map_tests.cpp b/src/tests_deprecated/unit/engines/vpu/attributes_map_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/attributes_map_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/attributes_map_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/cache_tests.cpp b/src/tests_deprecated/unit/engines/vpu/cache_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/cache_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/cache_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/data_desc_tests.cpp b/src/tests_deprecated/unit/engines/vpu/data_desc_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/data_desc_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/data_desc_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/eliminate_const_concat_tests.cpp b/src/tests_deprecated/unit/engines/vpu/eliminate_const_concat_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/eliminate_const_concat_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/eliminate_const_concat_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/eliminate_copy_tests.cpp b/src/tests_deprecated/unit/engines/vpu/eliminate_copy_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/eliminate_copy_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/eliminate_copy_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/graph_transformer_tests.cpp b/src/tests_deprecated/unit/engines/vpu/graph_transformer_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/graph_transformer_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/graph_transformer_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/graph_transformer_tests.hpp b/src/tests_deprecated/unit/engines/vpu/graph_transformer_tests.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/graph_transformer_tests.hpp rename to src/tests_deprecated/unit/engines/vpu/graph_transformer_tests.hpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/graph_transformer_tests_constructs.cpp b/src/tests_deprecated/unit/engines/vpu/graph_transformer_tests_constructs.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/graph_transformer_tests_constructs.cpp rename to src/tests_deprecated/unit/engines/vpu/graph_transformer_tests_constructs.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/intrusive_handle_list_tests.cpp b/src/tests_deprecated/unit/engines/vpu/intrusive_handle_list_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/intrusive_handle_list_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/intrusive_handle_list_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/merge_parallel_fc.cpp b/src/tests_deprecated/unit/engines/vpu/merge_parallel_fc.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/merge_parallel_fc.cpp rename to src/tests_deprecated/unit/engines/vpu/merge_parallel_fc.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/merge_permute_stages_tests.cpp b/src/tests_deprecated/unit/engines/vpu/merge_permute_stages_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/merge_permute_stages_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/merge_permute_stages_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/mvnc/pthread_semaphore_tests.cpp b/src/tests_deprecated/unit/engines/vpu/mvnc/pthread_semaphore_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/mvnc/pthread_semaphore_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/mvnc/pthread_semaphore_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/mvnc/watchdog_tests.cpp b/src/tests_deprecated/unit/engines/vpu/mvnc/watchdog_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/mvnc/watchdog_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/mvnc/watchdog_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/mvnc/xlink_device_tests.cpp b/src/tests_deprecated/unit/engines/vpu/mvnc/xlink_device_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/mvnc/xlink_device_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/mvnc/xlink_device_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_mvnc_stub.h b/src/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_mvnc_stub.h similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_mvnc_stub.h rename to src/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_mvnc_stub.h diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.cpp b/src/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.cpp rename to src/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.h b/src/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.h similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.h rename to src/tests_deprecated/unit/engines/vpu/myriad_tests/helpers/myriad_test_case.h diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_engine_tests.cpp b/src/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_engine_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_engine_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_engine_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_metrics_tests.cpp b/src/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_metrics_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_metrics_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/myriad_tests/myriad_metrics_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/range_tests.cpp b/src/tests_deprecated/unit/engines/vpu/range_tests.cpp similarity index 97% rename from inference-engine/tests_deprecated/unit/engines/vpu/range_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/range_tests.cpp index 1dd07f75e67..6249c9872be 100644 --- a/inference-engine/tests_deprecated/unit/engines/vpu/range_tests.cpp +++ b/src/tests_deprecated/unit/engines/vpu/range_tests.cpp @@ -177,12 +177,6 @@ TEST_F(VPU_MapRangeTests, CountSharedPointers) { ASSERT_EQ(2, innerStructSPtr.use_count()) << "intrusive list keeps weak pointer only"; } - auto mapRange = vpu::mapRange( - vpu::containerRange(list), - [](const vpu::Handle& innerPtr) { - return incFunc(innerPtr->val); - }); - for (int i = 0; i < count; ++i) { ASSERT_EQ(1, nodesExternalVector[i].use_count()) << "intrusive list keeps weak pointer only"; } @@ -297,8 +291,6 @@ TEST_F(VPU_FilterRangeTests, CountSharedPointers) { ASSERT_EQ(1, cit->use_count()) << "intrusive list keeps weak pointer only"; } - auto filterRange = vpu::filterRange(vpu::containerRange(list)); - for (auto cit = nodesExternalList.cbegin(); cit != nodesExternalList.end(); ++cit) { ASSERT_EQ(1, cit->use_count()) << "intrusive list keeps weak pointer only"; } @@ -376,9 +368,7 @@ TEST_F(VPU_FilterRangeTests, IterationOverEmptyIntrusiveListWhereAllElementsFilt return (innerPtr->val < 0); }); - for (const auto& ptr : filterRange) { - ASSERT_TRUE(false) << "Must not see any item in filtered list"; - } + ASSERT_TRUE(filterRange.empty()) << "Must not see any item in filtered list"; for (auto cit = list.cbegin(); cit != list.cend(); ++cit) { if (evenFunc((*cit)->val)) { @@ -386,9 +376,7 @@ TEST_F(VPU_FilterRangeTests, IterationOverEmptyIntrusiveListWhereAllElementsFilt } } - for (const auto& ptr : filterRange) { - ASSERT_TRUE(false) << "Must not see any item in filtered list"; - } + ASSERT_TRUE(filterRange.empty()) << "Must not see any item in filtered list"; for (auto cit = nodesExternalList.cbegin(); cit != nodesExternalList.end(); ++cit) { ASSERT_EQ(1, cit->use_count()) << "intrusive list keeps weak pointer only"; diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/replace_deconv_by_conv_tests.cpp b/src/tests_deprecated/unit/engines/vpu/replace_deconv_by_conv_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/replace_deconv_by_conv_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/replace_deconv_by_conv_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/replace_with_reduce_mean_tests.cpp b/src/tests_deprecated/unit/engines/vpu/replace_with_reduce_mean_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/replace_with_reduce_mean_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/replace_with_reduce_mean_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/replace_with_screlu_tests.cpp b/src/tests_deprecated/unit/engines/vpu/replace_with_screlu_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/replace_with_screlu_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/replace_with_screlu_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/reshape_dilation_conv_tests.cpp b/src/tests_deprecated/unit/engines/vpu/reshape_dilation_conv_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/reshape_dilation_conv_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/reshape_dilation_conv_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/small_vector_tests.cpp b/src/tests_deprecated/unit/engines/vpu/small_vector_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/small_vector_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/small_vector_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/sw_conv_adaptation.cpp b/src/tests_deprecated/unit/engines/vpu/sw_conv_adaptation.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/sw_conv_adaptation.cpp rename to src/tests_deprecated/unit/engines/vpu/sw_conv_adaptation.cpp diff --git a/inference-engine/tests_deprecated/unit/engines/vpu/uplift_activation_stages_tests.cpp b/src/tests_deprecated/unit/engines/vpu/uplift_activation_stages_tests.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/engines/vpu/uplift_activation_stages_tests.cpp rename to src/tests_deprecated/unit/engines/vpu/uplift_activation_stages_tests.cpp diff --git a/inference-engine/tests_deprecated/unit/inference_engine_tests/get_num_iterations_test.cpp b/src/tests_deprecated/unit/inference_engine_tests/get_num_iterations_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/inference_engine_tests/get_num_iterations_test.cpp rename to src/tests_deprecated/unit/inference_engine_tests/get_num_iterations_test.cpp diff --git a/inference-engine/tests_deprecated/unit/inference_engine_tests/layer_transform_test.cpp b/src/tests_deprecated/unit/inference_engine_tests/layer_transform_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/inference_engine_tests/layer_transform_test.cpp rename to src/tests_deprecated/unit/inference_engine_tests/layer_transform_test.cpp diff --git a/inference-engine/tests_deprecated/unit/inference_engine_tests/layers_test.cpp b/src/tests_deprecated/unit/inference_engine_tests/layers_test.cpp similarity index 100% rename from inference-engine/tests_deprecated/unit/inference_engine_tests/layers_test.cpp rename to src/tests_deprecated/unit/inference_engine_tests/layers_test.cpp diff --git a/inference-engine/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.cpp b/src/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.cpp similarity index 99% rename from inference-engine/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.cpp rename to src/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.cpp index 49cb14b98e0..3ac619f8372 100644 --- a/inference-engine/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.cpp +++ b/src/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.cpp @@ -333,8 +333,6 @@ TEST_F(RemoveLayerTests, canFindConstLayers) { auto constLayers = testTransformator->getConstLayers(sortedLayers); ASSERT_EQ(constLayers.size(), 2); - auto begin = constLayers.begin(); - auto end = constLayers.end(); ASSERT_FALSE(constLayers.at("input1")); ASSERT_FALSE(constLayers.at("layer2")); } diff --git a/inference-engine/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.hpp b/src/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.hpp rename to src/tests_deprecated/unit/inference_engine_tests/util_const_infer_test.hpp diff --git a/inference-engine/tests_deprecated/unit/inference_engine_tests/util_test.cpp b/src/tests_deprecated/unit/inference_engine_tests/util_test.cpp similarity index 99% rename from inference-engine/tests_deprecated/unit/inference_engine_tests/util_test.cpp rename to src/tests_deprecated/unit/inference_engine_tests/util_test.cpp index 55c81e438d6..778aca6e713 100644 --- a/inference-engine/tests_deprecated/unit/inference_engine_tests/util_test.cpp +++ b/src/tests_deprecated/unit/inference_engine_tests/util_test.cpp @@ -150,7 +150,6 @@ TEST(UtilTests, cloneNet) { .finalize(); - InferenceEngine::ResponseDesc resp; net->setName("net"); { diff --git a/inference-engine/tests_deprecated/unit/inference_engine_tests/util_test.hpp b/src/tests_deprecated/unit/inference_engine_tests/util_test.hpp similarity index 100% rename from inference-engine/tests_deprecated/unit/inference_engine_tests/util_test.hpp rename to src/tests_deprecated/unit/inference_engine_tests/util_test.hpp diff --git a/tests/fuzz/src/import_pdpd-fuzzer.cc b/tests/fuzz/src/import_pdpd-fuzzer.cc index ae85d3c3f42..5cb685847f9 100644 --- a/tests/fuzz/src/import_pdpd-fuzzer.cc +++ b/tests/fuzz/src/import_pdpd-fuzzer.cc @@ -1,7 +1,7 @@ // Copyright (C) 2018-2021 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // -#include "manager.hpp" +#include "openvino/frontend/manager.hpp" #include "ngraph/ngraph.hpp" #include "tokenizer.h" #include diff --git a/tests/time_tests/.automation/desktop_test_config_cache.yml b/tests/time_tests/.automation/desktop_test_config_cache.yml index b7b8417a869..802f26a182c 100644 --- a/tests/time_tests/.automation/desktop_test_config_cache.yml +++ b/tests/time_tests/.automation/desktop_test_config_cache.yml @@ -6,6 +6,14 @@ precision: FP16 framework: caffe2 use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/resnet-50-pytorch/caffe2/FP16/resnet-50-pytorch.xml + name: resnet-50-pytorch + precision: FP16 + framework: caffe2 + use_model_cache: true - device: name: CPU model: @@ -14,6 +22,14 @@ precision: FP16-INT8 framework: caffe2 use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/resnet-50-pytorch/caffe2/FP16-INT8/resnet-50-pytorch.xml + name: resnet-50-pytorch + precision: FP16-INT8 + framework: caffe2 + use_model_cache: true - device: name: CPU model: @@ -22,6 +38,14 @@ precision: FP16 framework: caffe2 use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/mobilenet-v2/caffe2/FP16/mobilenet-v2.xml + name: mobilenet-v2 + precision: FP16 + framework: caffe2 + use_model_cache: true - device: name: CPU model: @@ -30,6 +54,14 @@ precision: FP16-INT8 framework: caffe2 use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/mobilenet-v2/caffe2/FP16-INT8/mobilenet-v2.xml + name: mobilenet-v2 + precision: FP16-INT8 + framework: caffe2 + use_model_cache: true - device: name: CPU model: @@ -38,6 +70,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/faster_rcnn_resnet101_coco/tf/FP16/faster_rcnn_resnet101_coco.xml + name: faster_rcnn_resnet101_coco + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -46,6 +86,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/faster_rcnn_resnet101_coco/tf/FP16-INT8/faster_rcnn_resnet101_coco.xml + name: faster_rcnn_resnet101_coco + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -54,6 +102,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/faster-rcnn-resnet101-coco-sparse-60-0001/tf/FP16/faster-rcnn-resnet101-coco-sparse-60-0001.xml + name: faster-rcnn-resnet101-coco-sparse-60-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -62,6 +118,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/faster-rcnn-resnet101-coco-sparse-60-0001/tf/FP16-INT8/faster-rcnn-resnet101-coco-sparse-60-0001.xml + name: faster-rcnn-resnet101-coco-sparse-60-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -70,6 +134,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/googlenet-v1/tf/FP16/googlenet-v1.xml + name: googlenet-v1 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -78,6 +150,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/googlenet-v1/tf/FP16-INT8/googlenet-v1.xml + name: googlenet-v1 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -86,6 +166,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/googlenet-v3/tf/FP16/googlenet-v3.xml + name: googlenet-v3 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -94,6 +182,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/googlenet-v3/tf/FP16-INT8/googlenet-v3.xml + name: googlenet-v3 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -102,6 +198,14 @@ precision: FP16 framework: caffe use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/ssd512/caffe/FP16/ssd512.xml + name: ssd512 + precision: FP16 + framework: caffe + use_model_cache: true - device: name: CPU model: @@ -110,6 +214,14 @@ precision: FP16-INT8 framework: caffe use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/ssd512/caffe/FP16-INT8/ssd512.xml + name: ssd512 + precision: FP16-INT8 + framework: caffe + use_model_cache: true - device: name: CPU model: @@ -118,6 +230,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-ava-0001/tf/FP16/yolo-v2-ava-0001.xml + name: yolo-v2-ava-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -126,6 +246,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-ava-0001/tf/FP16-INT8/yolo-v2-ava-0001.xml + name: yolo-v2-ava-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -134,6 +262,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-ava-sparse-35-0001/tf/FP16/yolo-v2-ava-sparse-35-0001.xml + name: yolo-v2-ava-sparse-35-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -142,6 +278,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-ava-sparse-35-0001/tf/FP16-INT8/yolo-v2-ava-sparse-35-0001.xml + name: yolo-v2-ava-sparse-35-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -150,6 +294,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-ava-sparse-70-0001/tf/FP16/yolo-v2-ava-sparse-70-0001.xml + name: yolo-v2-ava-sparse-70-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -158,6 +310,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-ava-sparse-70-0001/tf/FP16-INT8/yolo-v2-ava-sparse-70-0001.xml + name: yolo-v2-ava-sparse-70-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -166,6 +326,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-tiny-ava-0001/tf/FP16/yolo-v2-tiny-ava-0001.xml + name: yolo-v2-tiny-ava-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -174,6 +342,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-tiny-ava-0001/tf/FP16-INT8/yolo-v2-tiny-ava-0001.xml + name: yolo-v2-tiny-ava-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -182,6 +358,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-tiny-ava-sparse-30-0001/tf/FP16/yolo-v2-tiny-ava-sparse-30-0001.xml + name: yolo-v2-tiny-ava-sparse-30-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -190,6 +374,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-tiny-ava-sparse-30-0001/tf/FP16-INT8/yolo-v2-tiny-ava-sparse-30-0001.xml + name: yolo-v2-tiny-ava-sparse-30-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -198,6 +390,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-tiny-ava-sparse-60-0001/tf/FP16/yolo-v2-tiny-ava-sparse-60-0001.xml + name: yolo-v2-tiny-ava-sparse-60-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -206,6 +406,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/yolo-v2-tiny-ava-sparse-60-0001/tf/FP16-INT8/yolo-v2-tiny-ava-sparse-60-0001.xml + name: yolo-v2-tiny-ava-sparse-60-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -214,6 +422,14 @@ precision: FP16 framework: caffe2 use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/squeezenet1.1/caffe2/FP16/squeezenet1.1.xml + name: squeezenet1.1 + precision: FP16 + framework: caffe2 + use_model_cache: true - device: name: CPU model: @@ -222,6 +438,14 @@ precision: FP16-INT8 framework: caffe2 use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/squeezenet1.1/caffe2/FP16-INT8/squeezenet1.1.xml + name: squeezenet1.1 + precision: FP16-INT8 + framework: caffe2 + use_model_cache: true - device: name: CPU model: @@ -230,6 +454,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/icnet-camvid-ava-0001/tf/FP16/icnet-camvid-ava-0001.xml + name: icnet-camvid-ava-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -238,6 +470,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/icnet-camvid-ava-0001/tf/FP16-INT8/icnet-camvid-ava-0001.xml + name: icnet-camvid-ava-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -246,6 +486,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/icnet-camvid-ava-sparse-30-0001/tf/FP16/icnet-camvid-ava-sparse-30-0001.xml + name: icnet-camvid-ava-sparse-30-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -254,6 +502,14 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/icnet-camvid-ava-sparse-30-0001/tf/FP16-INT8/icnet-camvid-ava-sparse-30-0001.xml + name: icnet-camvid-ava-sparse-30-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -262,6 +518,14 @@ precision: FP16 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/icnet-camvid-ava-sparse-60-0001/tf/FP16/icnet-camvid-ava-sparse-60-0001.xml + name: icnet-camvid-ava-sparse-60-0001 + precision: FP16 + framework: tf + use_model_cache: true - device: name: CPU model: @@ -270,3 +534,11 @@ precision: FP16-INT8 framework: tf use_model_cache: true +- device: + name: GPU + model: + path: ${VPUX_MODELS_PKG}/icnet-camvid-ava-sparse-60-0001/tf/FP16-INT8/icnet-camvid-ava-sparse-60-0001.xml + name: icnet-camvid-ava-sparse-60-0001 + precision: FP16-INT8 + framework: tf + use_model_cache: true diff --git a/tests/time_tests/include/timetests_helper/utils.h b/tests/time_tests/include/timetests_helper/utils.h index 86c9addaab6..585b91f4a04 100644 --- a/tests/time_tests/include/timetests_helper/utils.h +++ b/tests/time_tests/include/timetests_helper/utils.h @@ -22,7 +22,7 @@ std::string fileExt(const std::string &filename) { } /** - * @brief Function that enables performance hint for specified device. + * @brief Function that enables Latency performance hint for specified device. */ void setPerformanceConfig(InferenceEngine::Core ie, const std::string &device) { std::vector supported_config_keys = ie.GetMetric(device, METRIC_KEY(SUPPORTED_CONFIG_KEYS)); diff --git a/tests/time_tests/scripts/run_timetest.py b/tests/time_tests/scripts/run_timetest.py index 1f60c7d6289..fad7a66bca2 100644 --- a/tests/time_tests/scripts/run_timetest.py +++ b/tests/time_tests/scripts/run_timetest.py @@ -62,9 +62,7 @@ def prepare_executable_cmd(args: dict): str(args["executable"].resolve(strict=True)), "-m", str(args["model"].resolve(strict=True)), "-d", args["device"], - "-p" if args["perf_hint"] else "", - "-v" if args["vpu_compiler"] else "", args['vpu_compiler'] if args["vpu_compiler"] else "", - "-c" if args["cpu_cache"] else "", + "-c" if args["model_cache"] else "", ] @@ -135,21 +133,11 @@ def cli_parser(): parser.add_argument("-s", dest="stats_path", type=Path, - help="path to a file to save aggregated statistics") - parser.add_argument("-p", - dest="perf_hint", + help="Path to a file to save aggregated statistics") + parser.add_argument("-c", + dest="model_cache", action="store_true", - help="Enables 'LATENCY' performance hint for specified device.") - exclusive_group = parser.add_mutually_exclusive_group(required=False) - exclusive_group.add_argument("-c", - dest="cpu_cache", - action="store_true", - help="Enable CPU model cache usage") - exclusive_group.add_argument("-v", - dest="vpu_compiler", - choices=["MCM", "MLIR"], - type=str, - help="Change VPUX compiler type") + help="Enable model cache usage") args = parser.parse_args() @@ -162,12 +150,6 @@ if __name__ == "__main__": logging.basicConfig(format="[ %(levelname)s ] %(message)s", level=logging.DEBUG, stream=sys.stdout) - assert not (args.cpu_cache and args.device != "CPU"), \ - "The cache option is used only for the CPU device." - - assert not (args.vpu_compiler and "VPUX" not in args.device), \ - "The VPUX compiler option is used only for the VPUX device." - exit_code, _, aggr_stats, _ = run_timetest( dict(args._get_kwargs()), log=logging) # pylint: disable=protected-access if args.stats_path: diff --git a/tests/time_tests/src/timetests/timetest_infer.cpp b/tests/time_tests/src/timetests/timetest_infer.cpp index 5612c5dd0f2..e9b45bfb48c 100644 --- a/tests/time_tests/src/timetests/timetest_infer.cpp +++ b/tests/time_tests/src/timetests/timetest_infer.cpp @@ -16,40 +16,28 @@ using namespace InferenceEngine; * main(). The function should not throw any exceptions and responsible for * handling it by itself. */ -int runPipeline(const std::string &model, const std::string &device, const bool performanceHint, - const bool isCacheEnabled, const std::string &vpuCompiler) { - auto pipeline = [](const std::string &model, const std::string &device, const bool performanceHint, - const bool isCacheEnabled, const std::string &vpuCompiler) { +int runPipeline(const std::string &model, const std::string &device, const bool isCacheEnabled) { + auto pipeline = [](const std::string &model, const std::string &device, const bool isCacheEnabled) { Core ie; CNNNetwork cnnNetwork; ExecutableNetwork exeNetwork; InferRequest inferRequest; size_t batchSize = 0; - // set config for VPUX device - std::map vpuConfig = {}; - if (vpuCompiler == "MCM") - vpuConfig = {{"VPUX_COMPILER_TYPE", "MCM"}}; - else if (vpuCompiler == "MLIR") - vpuConfig = {{"VPUX_COMPILER_TYPE", "MLIR"}}; - // first_inference_latency = time_to_inference + first_inference { SCOPED_TIMER(time_to_inference); { SCOPED_TIMER(load_plugin); - if (performanceHint) { - TimeTest::setPerformanceConfig(ie, device); - } ie.GetVersions(device); - - if (isCacheEnabled) - ie.SetConfig({{CONFIG_KEY(CACHE_DIR), "models_cache"}}); } + // Set performance and model cache configs + TimeTest::setPerformanceConfig(ie, device); + if (isCacheEnabled) + ie.SetConfig({{CONFIG_KEY(CACHE_DIR), "models_cache"}}); { + SCOPED_TIMER(create_exenetwork); if (!isCacheEnabled) { - SCOPED_TIMER(create_exenetwork); - if (TimeTest::fileExt(model) == "blob") { SCOPED_TIMER(import_network); exeNetwork = ie.ImportNetwork(model, device); @@ -60,21 +48,19 @@ int runPipeline(const std::string &model, const std::string &device, const bool cnnNetwork = ie.ReadNetwork(model); batchSize = cnnNetwork.getBatchSize(); } - { SCOPED_TIMER(load_network); - exeNetwork = ie.LoadNetwork(cnnNetwork, device, vpuConfig); + exeNetwork = ie.LoadNetwork(cnnNetwork, device); } } } else { - SCOPED_TIMER(load_network); + SCOPED_TIMER(load_network_cache); exeNetwork = ie.LoadNetwork(model, device); } } inferRequest = exeNetwork.CreateInferRequest(); } - { SCOPED_TIMER(first_inference); { @@ -88,7 +74,7 @@ int runPipeline(const std::string &model, const std::string &device, const bool }; try { - pipeline(model, device, performanceHint, isCacheEnabled, vpuCompiler); + pipeline(model, device, isCacheEnabled); } catch (const InferenceEngine::Exception &iex) { std::cerr << "Inference Engine pipeline failed with Inference Engine exception:\n" diff --git a/tests/time_tests/src/timetests_helper/cli.h b/tests/time_tests/src/timetests_helper/cli.h index 3ebf2a8f924..c2fb200e62c 100644 --- a/tests/time_tests/src/timetests_helper/cli.h +++ b/tests/time_tests/src/timetests_helper/cli.h @@ -10,7 +10,8 @@ #include /// @brief message for help argument -static const char help_message[] = "Print a usage message"; +static const char help_message[] = + "Print a usage message."; /// @brief message for model argument static const char model_message[] = @@ -19,24 +20,17 @@ static const char model_message[] = /// @brief message for target device argument static const char target_device_message[] = - "Required. Specify a target device to infer on. " + "Required. Specify a target device to infer on. \n" "Use \"-d HETERO:\" format to specify HETERO " - "plugin. " + "plugin. \n" "Use \"-d MULTI:\" format to specify MULTI " - "plugin. " + "plugin. \n" "The application looks for a suitable plugin for the specified device."; -/// @brief message for vpu argument -static const char performance_hint_message[] = - "Not required. Enables performance hint 'LATENCY' for specified device."; - /// @brief message for cache argument -static const char cpu_cache_message[] = - "Not required. Use this key to run timetests with CPU models caching."; - -/// @brief message for vpu argument -static const char vpu_compiler_message[] = - "Not required. Use this key to run timetests with 'MLIR' or 'MCM' VPUX compiler type."; +static const char model_cache_message[] = + "Not required. Use this key to run timetests with models caching. \n" + "TimeInfer executable should be run twice - the second run will use cache prepared from first run."; /// @brief message for statistics path argument static const char statistics_path_message[] = @@ -56,17 +50,9 @@ DEFINE_string(m, "", model_message); /// It is a required parameter DEFINE_string(d, "", target_device_message); -/// @brief Define parameter for set performance hint for target device
-/// It is a non-required parameter -DEFINE_bool(p, false, performance_hint_message); - /// @brief Define parameter for set CPU models caching
/// It is a non-required parameter -DEFINE_bool(c, false, cpu_cache_message); - -/// @brief Define parameter VPU compiler type
-/// It is a non-required parameter -DEFINE_string(v, "", vpu_compiler_message); +DEFINE_bool(c, false, model_cache_message); /// @brief Define parameter for set path to a file to write statistics
/// It is a required parameter @@ -77,16 +63,12 @@ DEFINE_string(s, "", statistics_path_message); */ static void showUsage() { std::cout << std::endl; - std::cout << "TimeTests [OPTION]" << std::endl; + std::cout << "TimeInfer [OPTION]" << std::endl; std::cout << "Options:" << std::endl; std::cout << std::endl; - std::cout << " -h, --help " << help_message << std::endl; + std::cout << " -h, --help " << help_message << std::endl; std::cout << " -m \"\" " << model_message << std::endl; - std::cout << " -d \"\" " << target_device_message - << std::endl; - std::cout << " -s \"\" " << statistics_path_message - << std::endl; - std::cout << " -p " << performance_hint_message << std::endl; - std::cout << " -c " << cpu_cache_message << std::endl; - std::cout << " -v \"\" " << vpu_compiler_message << std::endl; + std::cout << " -d \"\" " << target_device_message << std::endl; + std::cout << " -s \"\" " << statistics_path_message << std::endl; + std::cout << " -c " << model_cache_message << std::endl; } diff --git a/tests/time_tests/src/timetests_helper/main.cpp b/tests/time_tests/src/timetests_helper/main.cpp index 193e5339711..2263324c743 100644 --- a/tests/time_tests/src/timetests_helper/main.cpp +++ b/tests/time_tests/src/timetests_helper/main.cpp @@ -8,8 +8,7 @@ #include -int runPipeline(const std::string &model, const std::string &device, const bool performanceHint, - const bool isCacheEnabled, const std::string &vpuCompiler); +int runPipeline(const std::string &model, const std::string &device, const bool isCacheEnabled); /** * @brief Parses command line and check required arguments @@ -41,7 +40,7 @@ bool parseAndCheckCommandLine(int argc, char **argv) { */ int _runPipeline() { SCOPED_TIMER(full_run); - return runPipeline(FLAGS_m, FLAGS_d, FLAGS_p, FLAGS_c, FLAGS_v); + return runPipeline(FLAGS_m, FLAGS_d, FLAGS_c); } /** diff --git a/tests/time_tests/test_runner/conftest.py b/tests/time_tests/test_runner/conftest.py index 647e603857f..cb9a457d58c 100644 --- a/tests/time_tests/test_runner/conftest.py +++ b/tests/time_tests/test_runner/conftest.py @@ -60,20 +60,9 @@ def pytest_addoption(parser): default=3 ) test_args_parser.addoption( - "--cpu_cache", + "--model_cache", action='store_true', - help="Enable model CPU cache usage", - ) - test_args_parser.addoption( - "--perf_hint", - action='store_true', - help="Enables 'LATENCY' performance hint for specified device." - ) - test_args_parser.addoption( - "--vpu_compiler", - choices=["MCM", "MLIR"], - type=str, - help="Change VPUX compiler type", + help="Enable model cache usage", ) db_args_parser = parser.getgroup("timetest database use") db_args_parser.addoption( @@ -131,22 +120,11 @@ def niter(request): @pytest.fixture(scope="session") -def cpu_cache(request): +def model_cache(request): """Fixture function for command-line option.""" - return request.config.getoption('cpu_cache') + return request.config.getoption('model_cache') -@pytest.fixture(scope="session") -def perf_hint(request): - """Fixture function for command-line option.""" - return request.config.getoption('perf_hint') - - -@pytest.fixture(scope="session") -def vpu_compiler(request): - """Fixture function for command-line option.""" - return request.config.getoption('vpu_compiler') - # -------------------- CLI options -------------------- @@ -272,9 +250,8 @@ def prepare_db_info(request, test_info, executable, niter, manifest_metadata): with open(db_meta_path, "r") as db_meta_f: test_info["db_info"].update(json.load(db_meta_f)) - # add cpu cache status - cpu_cache = True if request.config.getoption("cpu_cache") else False - test_info["db_info"].update({"use_cpu_cache": cpu_cache}) + # add model cache status + test_info["db_info"].update({"model_cache": request.config.getoption("model_cache")}) # add test info info = { diff --git a/tests/time_tests/test_runner/test_timetest.py b/tests/time_tests/test_runner/test_timetest.py index f84c53dd051..ef546ac3dfb 100644 --- a/tests/time_tests/test_runner/test_timetest.py +++ b/tests/time_tests/test_runner/test_timetest.py @@ -34,7 +34,7 @@ from scripts.run_timetest import run_timetest REFS_FACTOR = 1.2 # 120% -def test_timetest(instance, executable, niter, cl_cache_dir, cpu_cache, vpu_compiler, perf_hint, model_cache_dir, +def test_timetest(instance, executable, niter, cl_cache_dir, model_cache, model_cache_dir, test_info, temp_dir, validate_test_case, prepare_db_info): """Parameterized test. @@ -67,9 +67,7 @@ def test_timetest(instance, executable, niter, cl_cache_dir, cpu_cache, vpu_comp "model": Path(model_path), "device": instance["device"]["name"], "niter": niter, - "perf_hint": perf_hint, - "cpu_cache": cpu_cache, - "vpu_compiler": vpu_compiler if vpu_compiler else "" + "model_cache": model_cache, } logging.info("Run timetest once to generate any cache") retcode, msg, _, _ = run_timetest({**exe_args, "niter": 1}, log=logging) diff --git a/tools/mo/openvino/tools/mo/back/preprocessing.py b/tools/mo/openvino/tools/mo/back/preprocessing.py index 58e9569e322..c61da606d4a 100644 --- a/tools/mo/openvino/tools/mo/back/preprocessing.py +++ b/tools/mo/openvino/tools/mo/back/preprocessing.py @@ -372,6 +372,12 @@ def apply_preprocessing(ov_function: Model, argv: argparse.Namespace): else: prep.output(node_name).tensor().set_layout(Layout(layout_value['target_layout'])) + # Apply reverse_input_channels + if need_reverse: + for name, _ in suitable_params_ric: + prep.input(name).preprocess().reverse_channels() + log.debug('reverse_input_channels pre-processing applied to {}'.format(name)) + for node_name, node_mean_scale_values in mean_scale_values.items(): # Apply mean first, then scale if node_mean_scale_values['mean'] is not None: @@ -380,12 +386,6 @@ def apply_preprocessing(ov_function: Model, argv: argparse.Namespace): prep.input(node_name).preprocess().scale(node_mean_scale_values['scale']) log.debug('Mean/Scale pre-processing applied to {}'.format(node_name)) - # Apply reverse_input_channels - if need_reverse: - for name, _ in suitable_params_ric: - prep.input(name).preprocess().reverse_channels() - log.debug('reverse_input_channels pre-processing applied to {}'.format(name)) - # Apply pre-processing builder to a function ov_function = prep.build() diff --git a/tools/mo/openvino/tools/mo/utils/cli_parser.py b/tools/mo/openvino/tools/mo/utils/cli_parser.py index 6fa94057830..3d0056aaa70 100644 --- a/tools/mo/openvino/tools/mo/utils/cli_parser.py +++ b/tools/mo/openvino/tools/mo/utils/cli_parser.py @@ -273,10 +273,12 @@ def get_common_cli_parser(parser: argparse.ArgumentParser = None): 'the original input of the model.') common_group.add_argument('--reverse_input_channels', help='Switch the input channels order from RGB to BGR (or vice versa). Applied to ' - 'original inputs of the model if and only if a number of channels equals 3. Applied ' - 'after application of --mean_values and --scale_values options, so numbers in ' - '--mean_values and --scale_values go in the order of channels used in the original ' - 'model.', + 'original inputs of the model if and only if a number of channels equals 3. ' + 'When --mean_values/--scale_values are also specified, reversing of channels will ' + 'be applied to user\'s input data first, so that numbers in --mean_values ' + 'and --scale_values go in the order of channels used in the original model. ' + 'In other words, if both options are specified, then the data flow in the model ' + 'looks as following: Parameter -> ReverseInputChannels -> Mean/Scale apply -> the original body of the model.', action='store_true') common_group.add_argument('--log_level', help='Logger level', diff --git a/tools/mo/openvino/tools/mo/utils/ir_reader/layer_to_class.py b/tools/mo/openvino/tools/mo/utils/ir_reader/layer_to_class.py index bbbc429fc0d..e207478e1ae 100644 --- a/tools/mo/openvino/tools/mo/utils/ir_reader/layer_to_class.py +++ b/tools/mo/openvino/tools/mo/utils/ir_reader/layer_to_class.py @@ -189,6 +189,14 @@ def groupconv_to_conv(op: Node): # We use add_destination method here to support case with multiple destinations of source port weights_node.in_port(0).get_source().get_connection().add_destination(op.in_port(1)) weights_node.in_port(0).disconnect() + elif weights_node.type == 'Convert' and weights_node.destination_type == 'f32'\ + and weights_node.in_port(0).get_source().node.type == 'Const': + # Support new FP16 IRs + const_node = weights_node.in_port(0).get_source().node + assert const_node.has_valid('value'), \ + 'Weights of GroupConv node {} have incorrect format'.format(op.name) + const_node.value = np.reshape(const_node.value, new_shape) + else: assert op.in_port(1).get_source().data.get_shape() == new_shape, \ 'Weight shape and calculated shape mismatch in GroupConv node {}.'.format(op.name) diff --git a/tools/mo/unit_tests/extensions/back/__init__.py b/tools/mo/unit_tests/extensions/back/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/front/__init__.py b/tools/mo/unit_tests/extensions/front/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/front/caffe/__init__.py b/tools/mo/unit_tests/extensions/front/caffe/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/front/kaldi/__init__.py b/tools/mo/unit_tests/extensions/front/kaldi/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/front/mxnet/__init__.py b/tools/mo/unit_tests/extensions/front/mxnet/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/front/onnx/__init__.py b/tools/mo/unit_tests/extensions/front/onnx/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/front/tf/__init__.py b/tools/mo/unit_tests/extensions/front/tf/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/middle/__init__.py b/tools/mo/unit_tests/extensions/middle/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/ops/__init__.py b/tools/mo/unit_tests/extensions/ops/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tools/mo/unit_tests/extensions/analysis/Iterator_get_next_test.py b/tools/mo/unit_tests/mo/analysis/Iterator_get_next_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/analysis/Iterator_get_next_test.py rename to tools/mo/unit_tests/mo/analysis/Iterator_get_next_test.py diff --git a/tools/mo/unit_tests/extensions/__init__.py b/tools/mo/unit_tests/mo/analysis/__init__.py similarity index 100% rename from tools/mo/unit_tests/extensions/__init__.py rename to tools/mo/unit_tests/mo/analysis/__init__.py diff --git a/tools/mo/unit_tests/extensions/back/ChangeOutputTypeAttributes_test.py b/tools/mo/unit_tests/mo/back/ChangeOutputTypeAttributes_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ChangeOutputTypeAttributes_test.py rename to tools/mo/unit_tests/mo/back/ChangeOutputTypeAttributes_test.py diff --git a/tools/mo/unit_tests/extensions/back/ChangeRandomUniformOutputType_test.py b/tools/mo/unit_tests/mo/back/ChangeRandomUniformOutputType_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ChangeRandomUniformOutputType_test.py rename to tools/mo/unit_tests/mo/back/ChangeRandomUniformOutputType_test.py diff --git a/tools/mo/unit_tests/extensions/back/ClampNormalizer_test.py b/tools/mo/unit_tests/mo/back/ClampNormalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ClampNormalizer_test.py rename to tools/mo/unit_tests/mo/back/ClampNormalizer_test.py diff --git a/tools/mo/unit_tests/extensions/back/ConvolutionNormalizer_test.py b/tools/mo/unit_tests/mo/back/ConvolutionNormalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ConvolutionNormalizer_test.py rename to tools/mo/unit_tests/mo/back/ConvolutionNormalizer_test.py diff --git a/tools/mo/unit_tests/extensions/back/CutMemory_test.py b/tools/mo/unit_tests/mo/back/CutMemory_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/CutMemory_test.py rename to tools/mo/unit_tests/mo/back/CutMemory_test.py diff --git a/tools/mo/unit_tests/extensions/back/FakeOutputResolver_test.py b/tools/mo/unit_tests/mo/back/FakeOutputResolver_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/FakeOutputResolver_test.py rename to tools/mo/unit_tests/mo/back/FakeOutputResolver_test.py diff --git a/tools/mo/unit_tests/extensions/back/FuseTransposesSequence_test.py b/tools/mo/unit_tests/mo/back/FuseTransposesSequence_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/FuseTransposesSequence_test.py rename to tools/mo/unit_tests/mo/back/FuseTransposesSequence_test.py diff --git a/tools/mo/unit_tests/extensions/back/GatherTreeNormalizer_test.py b/tools/mo/unit_tests/mo/back/GatherTreeNormalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/GatherTreeNormalizer_test.py rename to tools/mo/unit_tests/mo/back/GatherTreeNormalizer_test.py diff --git a/tools/mo/unit_tests/extensions/back/InterpolateReshape_test.py b/tools/mo/unit_tests/mo/back/InterpolateReshape_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/InterpolateReshape_test.py rename to tools/mo/unit_tests/mo/back/InterpolateReshape_test.py diff --git a/tools/mo/unit_tests/extensions/back/LayoutChangeForGatherND_test.py b/tools/mo/unit_tests/mo/back/LayoutChangeForGatherND_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/LayoutChangeForGatherND_test.py rename to tools/mo/unit_tests/mo/back/LayoutChangeForGatherND_test.py diff --git a/tools/mo/unit_tests/extensions/back/MarkNodesWithShapeValues_test.py b/tools/mo/unit_tests/mo/back/MarkNodesWithShapeValues_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/MarkNodesWithShapeValues_test.py rename to tools/mo/unit_tests/mo/back/MarkNodesWithShapeValues_test.py diff --git a/tools/mo/unit_tests/extensions/back/MatMulNormalizer_test.py b/tools/mo/unit_tests/mo/back/MatMulNormalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/MatMulNormalizer_test.py rename to tools/mo/unit_tests/mo/back/MatMulNormalizer_test.py diff --git a/tools/mo/unit_tests/extensions/back/OptimizeTransposeReshapeSequence_test.py b/tools/mo/unit_tests/mo/back/OptimizeTransposeReshapeSequence_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/OptimizeTransposeReshapeSequence_test.py rename to tools/mo/unit_tests/mo/back/OptimizeTransposeReshapeSequence_test.py diff --git a/tools/mo/unit_tests/extensions/back/ReduceTransposeDimensions_test.py b/tools/mo/unit_tests/mo/back/ReduceTransposeDimensions_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ReduceTransposeDimensions_test.py rename to tools/mo/unit_tests/mo/back/ReduceTransposeDimensions_test.py diff --git a/tools/mo/unit_tests/extensions/back/ResultRename_test.py b/tools/mo/unit_tests/mo/back/ResultRename_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ResultRename_test.py rename to tools/mo/unit_tests/mo/back/ResultRename_test.py diff --git a/tools/mo/unit_tests/extensions/back/ReverseInputChannels_test.py b/tools/mo/unit_tests/mo/back/ReverseInputChannels_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ReverseInputChannels_test.py rename to tools/mo/unit_tests/mo/back/ReverseInputChannels_test.py diff --git a/tools/mo/unit_tests/extensions/back/ShapeOfConstFolding_test.py b/tools/mo/unit_tests/mo/back/ShapeOfConstFolding_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ShapeOfConstFolding_test.py rename to tools/mo/unit_tests/mo/back/ShapeOfConstFolding_test.py diff --git a/tools/mo/unit_tests/extensions/back/ShuffleChannelPatternOptimization_test.py b/tools/mo/unit_tests/mo/back/ShuffleChannelPatternOptimization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/ShuffleChannelPatternOptimization_test.py rename to tools/mo/unit_tests/mo/back/ShuffleChannelPatternOptimization_test.py diff --git a/tools/mo/unit_tests/extensions/back/SpecialNodesFinalization_test.py b/tools/mo/unit_tests/mo/back/SpecialNodesFinalization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/SpecialNodesFinalization_test.py rename to tools/mo/unit_tests/mo/back/SpecialNodesFinalization_test.py diff --git a/tools/mo/unit_tests/extensions/back/TransposeDFT_test.py b/tools/mo/unit_tests/mo/back/TransposeDFT_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/TransposeDFT_test.py rename to tools/mo/unit_tests/mo/back/TransposeDFT_test.py diff --git a/tools/mo/unit_tests/extensions/back/TransposeReduceFusing_test.py b/tools/mo/unit_tests/mo/back/TransposeReduceFusing_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/TransposeReduceFusing_test.py rename to tools/mo/unit_tests/mo/back/TransposeReduceFusing_test.py diff --git a/tools/mo/unit_tests/extensions/back/add_outputs_recursive_test.py b/tools/mo/unit_tests/mo/back/add_outputs_recursive_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/add_outputs_recursive_test.py rename to tools/mo/unit_tests/mo/back/add_outputs_recursive_test.py diff --git a/tools/mo/unit_tests/extensions/back/compress_quantized_weights_test.py b/tools/mo/unit_tests/mo/back/compress_quantized_weights_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/compress_quantized_weights_test.py rename to tools/mo/unit_tests/mo/back/compress_quantized_weights_test.py diff --git a/tools/mo/unit_tests/extensions/back/insert_compatibility_l2normalization_test.py b/tools/mo/unit_tests/mo/back/insert_compatibility_l2normalization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/insert_compatibility_l2normalization_test.py rename to tools/mo/unit_tests/mo/back/insert_compatibility_l2normalization_test.py diff --git a/tools/mo/unit_tests/extensions/back/kaldi_remove_memory_output_test.py b/tools/mo/unit_tests/mo/back/kaldi_remove_memory_output_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/kaldi_remove_memory_output_test.py rename to tools/mo/unit_tests/mo/back/kaldi_remove_memory_output_test.py diff --git a/tools/mo/unit_tests/mo/back/moc_preprocessing_test_actual.py b/tools/mo/unit_tests/mo/back/moc_preprocessing_test_actual.py index 5f1391baff4..5a1288b482a 100644 --- a/tools/mo/unit_tests/mo/back/moc_preprocessing_test_actual.py +++ b/tools/mo/unit_tests/mo/back/moc_preprocessing_test_actual.py @@ -56,25 +56,23 @@ class TestPreprocessingMOC(unittest.TestCase): def setUp(self): pass + def check_constant(self, const_node, expected, shape=None): + self.assertEqual(const_node.get_type_name(), 'Constant') + self.assertTrue(np.allclose(const_node.get_vector(), expected)) + if shape is not None: + assert const_node.shape == PartialShape(shape) + def check_scale_constant(self, node, expected, shape=None): const_node = node.input(1).get_source_output().get_node() - self.assertEqual(const_node.get_type_name(), 'Constant') - if node.get_type_name() == 'Divide': - self.assertTrue(np.allclose(const_node.get_vector(), expected)) - else: - self.assertTrue(np.allclose(const_node.get_vector(), 1. / expected)) - if shape: - assert const_node.shape == PartialShape(shape) + if node.get_type_name() != 'Divide': + expected = 1. / expected + self.check_constant(const_node, expected, shape) def check_mean_constant(self, node, expected, shape=None): const_node = node.input(1).get_source_output().get_node() - self.assertEqual(const_node.get_type_name(), 'Constant') - if node.get_type_name() == 'Subtract': - self.assertTrue(np.allclose(const_node.get_vector(), expected)) - else: - self.assertTrue(np.allclose(const_node.get_vector(), -expected.toList())) - if shape: - self.assertEqual(const_node.shape, PartialShape(shape)) + if node.get_type_name() != 'Subtract': + expected = -expected.toList() + self.check_constant(const_node, expected, shape) def test_scale_single_value(self): argv = Namespace(mean_scale_values=None, scale=2.0) @@ -615,3 +613,41 @@ class TestPreprocessingMOC(unittest.TestCase): self.assertTrue(op_node0.get_type_name() == 'Relu') op_node1 = list(function.get_parameters()[1].output(0).get_target_inputs())[0].get_node() self.assertTrue(op_node1.get_type_name() == 'Relu') + + def test_reverse_channels_and_mean_scale(self): + argv = Namespace(reverse_input_channels=True, mean_scale_values={ + 'input2a': { + 'mean': np.array([1., 2., 3.]), + 'scale': np.array([2., 4., 8.])}}, + scale=None) + function = create_function2(shape2=[1, 3, 224, 224]) + process_function(ov_function=function, argv=argv) + + # Verify that first is gather, then subtract 'mean', then 'scale' + gather = list(function.get_parameters()[1].output(0).get_target_inputs())[0].get_node() + self.assertTrue(gather.get_type_name() == 'Gather') + range_node = gather.input(1).get_source_output().get_node() + self.assertTrue(range_node.get_type_name() == 'Range') + start = range_node.input(0).get_source_output().get_node() + end = range_node.input(1).get_source_output().get_node() + step = range_node.input(2).get_source_output().get_node() + self.check_constant(start, expected=[2], shape=[]) + self.check_constant(end, expected=[-1], shape=[]) + self.check_constant(step, expected=[-1], shape=[]) + axes = gather.input(2).get_source_output().get_node() + self.check_constant(axes, expected=[1], shape=[1]) + + op_node = list(gather.output(0).get_target_inputs())[0].get_node() + self.assertTrue(op_node.get_type_name() == 'Subtract' or op_node.get_type_name() == 'Add') + self.check_mean_constant(op_node, expected=[1., 2., 3.], shape=[1, 3, 1, 1]) + + op_node = list(op_node.output(0).get_target_inputs())[0].get_node() + self.assertTrue(op_node.get_type_name() == 'Divide' or op_node.get_type_name() == 'Multiply') + self.check_scale_constant(op_node, expected=[2., 4., 8.], shape=[1, 3, 1, 1]) + + # Verify that input1 is not affected + op_node = list(function.get_parameters()[0].output(0).get_target_inputs())[0].get_node() + self.assertEqual(op_node.get_type_name(), 'Relu') + + # Verify that guessed layout (?C??) is not appeared in input2 + self.assertEqual(function.get_parameters()[1].layout, Layout()) diff --git a/tools/mo/unit_tests/extensions/back/names_uniqueness_check_test.py b/tools/mo/unit_tests/mo/back/names_uniqueness_check_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/names_uniqueness_check_test.py rename to tools/mo/unit_tests/mo/back/names_uniqueness_check_test.py diff --git a/tools/mo/unit_tests/extensions/back/remove_last_softmax_test.py b/tools/mo/unit_tests/mo/back/remove_last_softmax_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/back/remove_last_softmax_test.py rename to tools/mo/unit_tests/mo/back/remove_last_softmax_test.py diff --git a/tools/mo/unit_tests/extensions/front/ATenToEmbeddingBag_test.py b/tools/mo/unit_tests/mo/front/ATenToEmbeddingBag_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/ATenToEmbeddingBag_test.py rename to tools/mo/unit_tests/mo/front/ATenToEmbeddingBag_test.py diff --git a/tools/mo/unit_tests/extensions/front/AttributedClampNormalizer_test.py b/tools/mo/unit_tests/mo/front/AttributedClampNormalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/AttributedClampNormalizer_test.py rename to tools/mo/unit_tests/mo/front/AttributedClampNormalizer_test.py diff --git a/tools/mo/unit_tests/extensions/front/AttributedPadToPad_test.py b/tools/mo/unit_tests/mo/front/AttributedPadToPad_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/AttributedPadToPad_test.py rename to tools/mo/unit_tests/mo/front/AttributedPadToPad_test.py diff --git a/tools/mo/unit_tests/extensions/front/AttributedRandomUniformToRandomUniform_test.py b/tools/mo/unit_tests/mo/front/AttributedRandomUniformToRandomUniform_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/AttributedRandomUniformToRandomUniform_test.py rename to tools/mo/unit_tests/mo/front/AttributedRandomUniformToRandomUniform_test.py diff --git a/tools/mo/unit_tests/extensions/front/AttributedRollToRoll_test.py b/tools/mo/unit_tests/mo/front/AttributedRollToRoll_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/AttributedRollToRoll_test.py rename to tools/mo/unit_tests/mo/front/AttributedRollToRoll_test.py diff --git a/tools/mo/unit_tests/extensions/front/GeLUMerger_Erf_test.py b/tools/mo/unit_tests/mo/front/GeLUMerger_Erf_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/GeLUMerger_Erf_test.py rename to tools/mo/unit_tests/mo/front/GeLUMerger_Erf_test.py diff --git a/tools/mo/unit_tests/extensions/front/GeLUMerger_Tanh_test.py b/tools/mo/unit_tests/mo/front/GeLUMerger_Tanh_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/GeLUMerger_Tanh_test.py rename to tools/mo/unit_tests/mo/front/GeLUMerger_Tanh_test.py diff --git a/tools/mo/unit_tests/extensions/front/GlobalPoolingToReduce_test.py b/tools/mo/unit_tests/mo/front/GlobalPoolingToReduce_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/GlobalPoolingToReduce_test.py rename to tools/mo/unit_tests/mo/front/GlobalPoolingToReduce_test.py diff --git a/tools/mo/unit_tests/extensions/front/HSigmoid_fusion_test.py b/tools/mo/unit_tests/mo/front/HSigmoid_fusion_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/HSigmoid_fusion_test.py rename to tools/mo/unit_tests/mo/front/HSigmoid_fusion_test.py diff --git a/tools/mo/unit_tests/extensions/front/HSwish_fusing_test.py b/tools/mo/unit_tests/mo/front/HSwish_fusing_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/HSwish_fusing_test.py rename to tools/mo/unit_tests/mo/front/HSwish_fusing_test.py diff --git a/tools/mo/unit_tests/extensions/front/LayerNorm_test.py b/tools/mo/unit_tests/mo/front/LayerNorm_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/LayerNorm_test.py rename to tools/mo/unit_tests/mo/front/LayerNorm_test.py diff --git a/tools/mo/unit_tests/extensions/front/Log1p_test.py b/tools/mo/unit_tests/mo/front/Log1p_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/Log1p_test.py rename to tools/mo/unit_tests/mo/front/Log1p_test.py diff --git a/tools/mo/unit_tests/extensions/front/OneHotDepthNormalizer_test.py b/tools/mo/unit_tests/mo/front/OneHotDepthNormalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/OneHotDepthNormalizer_test.py rename to tools/mo/unit_tests/mo/front/OneHotDepthNormalizer_test.py diff --git a/tools/mo/unit_tests/extensions/front/Pack_test.py b/tools/mo/unit_tests/mo/front/Pack_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/Pack_test.py rename to tools/mo/unit_tests/mo/front/Pack_test.py diff --git a/tools/mo/unit_tests/extensions/front/RollWithEmptyAxesReplacer_test.py b/tools/mo/unit_tests/mo/front/RollWithEmptyAxesReplacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/RollWithEmptyAxesReplacer_test.py rename to tools/mo/unit_tests/mo/front/RollWithEmptyAxesReplacer_test.py diff --git a/tools/mo/unit_tests/extensions/front/ThresholdedReluDecomposition_test.py b/tools/mo/unit_tests/mo/front/ThresholdedReluDecomposition_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/ThresholdedReluDecomposition_test.py rename to tools/mo/unit_tests/mo/front/ThresholdedReluDecomposition_test.py diff --git a/tools/mo/unit_tests/extensions/front/binary_quantize_normalization_test.py b/tools/mo/unit_tests/mo/front/binary_quantize_normalization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/binary_quantize_normalization_test.py rename to tools/mo/unit_tests/mo/front/binary_quantize_normalization_test.py diff --git a/tools/mo/unit_tests/extensions/front/broadcast_with_range_test.py b/tools/mo/unit_tests/mo/front/broadcast_with_range_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/broadcast_with_range_test.py rename to tools/mo/unit_tests/mo/front/broadcast_with_range_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/MVNCaffeToMVN_test.py b/tools/mo/unit_tests/mo/front/caffe/MVNCaffeToMVN_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/MVNCaffeToMVN_test.py rename to tools/mo/unit_tests/mo/front/caffe/MVNCaffeToMVN_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/argmax_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/argmax_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/argmax_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/argmax_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/axpy_test.py b/tools/mo/unit_tests/mo/front/caffe/axpy_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/axpy_test.py rename to tools/mo/unit_tests/mo/front/caffe/axpy_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/bn_test.py b/tools/mo/unit_tests/mo/front/caffe/bn_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/bn_test.py rename to tools/mo/unit_tests/mo/front/caffe/bn_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/conv_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/conv_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/conv_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/conv_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/crop_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/crop_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/crop_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/crop_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/ctcgreedydecoder_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/ctcgreedydecoder_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/ctcgreedydecoder_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/ctcgreedydecoder_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/elementwise_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/elementwise_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/elementwise_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/elementwise_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/eltwise_add_normalize_test.py b/tools/mo/unit_tests/mo/front/caffe/eltwise_add_normalize_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/eltwise_add_normalize_test.py rename to tools/mo/unit_tests/mo/front/caffe/eltwise_add_normalize_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/elu_test.py b/tools/mo/unit_tests/mo/front/caffe/elu_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/elu_test.py rename to tools/mo/unit_tests/mo/front/caffe/elu_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/grn_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/grn_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/grn_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/grn_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/normalize_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/normalize_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/normalize_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/normalize_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/pooling_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/pooling_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/pooling_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/pooling_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/prelu_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/prelu_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/prelu_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/prelu_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/priorbox_clustered_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/priorbox_clustered_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/priorbox_clustered_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/priorbox_clustered_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/priorbox_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/priorbox_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/priorbox_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/priorbox_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/proposal_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/proposal_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/proposal_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/proposal_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/proposal_python_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/proposal_python_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/proposal_python_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/proposal_python_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/regionyolo_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/regionyolo_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/regionyolo_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/regionyolo_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/caffe/reorgyolo_ext_test.py b/tools/mo/unit_tests/mo/front/caffe/reorgyolo_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/caffe/reorgyolo_ext_test.py rename to tools/mo/unit_tests/mo/front/caffe/reorgyolo_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/div_test.py b/tools/mo/unit_tests/mo/front/div_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/div_test.py rename to tools/mo/unit_tests/mo/front/div_test.py diff --git a/tools/mo/unit_tests/extensions/front/eltwise_n_test.py b/tools/mo/unit_tests/mo/front/eltwise_n_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/eltwise_n_test.py rename to tools/mo/unit_tests/mo/front/eltwise_n_test.py diff --git a/tools/mo/unit_tests/extensions/front/freeze_placeholder_value_test.py b/tools/mo/unit_tests/mo/front/freeze_placeholder_value_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/freeze_placeholder_value_test.py rename to tools/mo/unit_tests/mo/front/freeze_placeholder_value_test.py diff --git a/tools/mo/unit_tests/extensions/front/image_scaler_test.py b/tools/mo/unit_tests/mo/front/image_scaler_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/image_scaler_test.py rename to tools/mo/unit_tests/mo/front/image_scaler_test.py diff --git a/tools/mo/unit_tests/extensions/front/instance_normalization_test.py b/tools/mo/unit_tests/mo/front/instance_normalization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/instance_normalization_test.py rename to tools/mo/unit_tests/mo/front/instance_normalization_test.py diff --git a/tools/mo/unit_tests/extensions/front/interpolate_reshape_test.py b/tools/mo/unit_tests/mo/front/interpolate_reshape_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/interpolate_reshape_test.py rename to tools/mo/unit_tests/mo/front/interpolate_reshape_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/add_permute_after_convolution_test.py b/tools/mo/unit_tests/mo/front/kaldi/add_permute_after_convolution_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/add_permute_after_convolution_test.py rename to tools/mo/unit_tests/mo/front/kaldi/add_permute_after_convolution_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/apply_counts_test.py b/tools/mo/unit_tests/mo/front/kaldi/apply_counts_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/apply_counts_test.py rename to tools/mo/unit_tests/mo/front/kaldi/apply_counts_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/memory_offset_adjustment_test.py b/tools/mo/unit_tests/mo/front/kaldi/memory_offset_adjustment_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/memory_offset_adjustment_test.py rename to tools/mo/unit_tests/mo/front/kaldi/memory_offset_adjustment_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/replace_lstm_nonlinearity_test.py b/tools/mo/unit_tests/mo/front/kaldi/replace_lstm_nonlinearity_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/replace_lstm_nonlinearity_test.py rename to tools/mo/unit_tests/mo/front/kaldi/replace_lstm_nonlinearity_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/replace_timeheightconvolution_test.py b/tools/mo/unit_tests/mo/front/kaldi/replace_timeheightconvolution_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/replace_timeheightconvolution_test.py rename to tools/mo/unit_tests/mo/front/kaldi/replace_timeheightconvolution_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/set_ports_test.py b/tools/mo/unit_tests/mo/front/kaldi/set_ports_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/set_ports_test.py rename to tools/mo/unit_tests/mo/front/kaldi/set_ports_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/sigmoid_ext_test.py b/tools/mo/unit_tests/mo/front/kaldi/sigmoid_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/sigmoid_ext_test.py rename to tools/mo/unit_tests/mo/front/kaldi/sigmoid_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/tanh_ext_test.py b/tools/mo/unit_tests/mo/front/kaldi/tanh_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/tanh_ext_test.py rename to tools/mo/unit_tests/mo/front/kaldi/tanh_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/kaldi/tdnn_component_replacer_test.py b/tools/mo/unit_tests/mo/front/kaldi/tdnn_component_replacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/kaldi/tdnn_component_replacer_test.py rename to tools/mo/unit_tests/mo/front/kaldi/tdnn_component_replacer_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/MXFFTToDFT_test.py b/tools/mo/unit_tests/mo/front/mxnet/MXFFTToDFT_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/MXFFTToDFT_test.py rename to tools/mo/unit_tests/mo/front/mxnet/MXFFTToDFT_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/RNN_ext_test.py b/tools/mo/unit_tests/mo/front/mxnet/RNN_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/RNN_ext_test.py rename to tools/mo/unit_tests/mo/front/mxnet/RNN_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/activation_test.py b/tools/mo/unit_tests/mo/front/mxnet/activation_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/activation_test.py rename to tools/mo/unit_tests/mo/front/mxnet/activation_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/add_input_data_to_prior_boxes_test.py b/tools/mo/unit_tests/mo/front/mxnet/add_input_data_to_prior_boxes_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/add_input_data_to_prior_boxes_test.py rename to tools/mo/unit_tests/mo/front/mxnet/add_input_data_to_prior_boxes_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/check_softmax_node_inputs_test.py b/tools/mo/unit_tests/mo/front/mxnet/check_softmax_node_inputs_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/check_softmax_node_inputs_test.py rename to tools/mo/unit_tests/mo/front/mxnet/check_softmax_node_inputs_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/conv_ext_test.py b/tools/mo/unit_tests/mo/front/mxnet/conv_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/conv_ext_test.py rename to tools/mo/unit_tests/mo/front/mxnet/conv_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/custom_test.py b/tools/mo/unit_tests/mo/front/mxnet/custom_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/custom_test.py rename to tools/mo/unit_tests/mo/front/mxnet/custom_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/gather_test.py b/tools/mo/unit_tests/mo/front/mxnet/gather_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/gather_test.py rename to tools/mo/unit_tests/mo/front/mxnet/gather_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/gluoncv_ssd_anchors_test.py b/tools/mo/unit_tests/mo/front/mxnet/gluoncv_ssd_anchors_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/gluoncv_ssd_anchors_test.py rename to tools/mo/unit_tests/mo/front/mxnet/gluoncv_ssd_anchors_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/leaky_relu_test.py b/tools/mo/unit_tests/mo/front/mxnet/leaky_relu_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/leaky_relu_test.py rename to tools/mo/unit_tests/mo/front/mxnet/leaky_relu_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/multibox_detection_test.py b/tools/mo/unit_tests/mo/front/mxnet/multibox_detection_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/multibox_detection_test.py rename to tools/mo/unit_tests/mo/front/mxnet/multibox_detection_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/mx_reshape_reverse_test.py b/tools/mo/unit_tests/mo/front/mxnet/mx_reshape_reverse_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/mx_reshape_reverse_test.py rename to tools/mo/unit_tests/mo/front/mxnet/mx_reshape_reverse_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/mx_reshape_to_reshape_test.py b/tools/mo/unit_tests/mo/front/mxnet/mx_reshape_to_reshape_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/mx_reshape_to_reshape_test.py rename to tools/mo/unit_tests/mo/front/mxnet/mx_reshape_to_reshape_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/pooling_ext_test.py b/tools/mo/unit_tests/mo/front/mxnet/pooling_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/pooling_ext_test.py rename to tools/mo/unit_tests/mo/front/mxnet/pooling_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/sigmoid_test.py b/tools/mo/unit_tests/mo/front/mxnet/sigmoid_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/sigmoid_test.py rename to tools/mo/unit_tests/mo/front/mxnet/sigmoid_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_flatten_softmax_activation_test.py b/tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_flatten_softmax_activation_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_flatten_softmax_activation_test.py rename to tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_flatten_softmax_activation_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_remove_flatten_test.py b/tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_remove_flatten_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_remove_flatten_test.py rename to tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_remove_flatten_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_remove_reshape_test.py b/tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_remove_reshape_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_remove_reshape_test.py rename to tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_remove_reshape_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_remove_transpose_test.py b/tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_remove_transpose_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/ssd_pattern_remove_transpose_test.py rename to tools/mo/unit_tests/mo/front/mxnet/ssd_pattern_remove_transpose_test.py diff --git a/tools/mo/unit_tests/extensions/front/mxnet/ssd_reorder_detection_out_inputs_test.py b/tools/mo/unit_tests/mo/front/mxnet/ssd_reorder_detection_out_inputs_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/mxnet/ssd_reorder_detection_out_inputs_test.py rename to tools/mo/unit_tests/mo/front/mxnet/ssd_reorder_detection_out_inputs_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/AttributedSliceToSlice_test.py b/tools/mo/unit_tests/mo/front/onnx/AttributedSliceToSlice_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/AttributedSliceToSlice_test.py rename to tools/mo/unit_tests/mo/front/onnx/AttributedSliceToSlice_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/MvnOnnxToMvn_test.py b/tools/mo/unit_tests/mo/front/onnx/MvnOnnxToMvn_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/MvnOnnxToMvn_test.py rename to tools/mo/unit_tests/mo/front/onnx/MvnOnnxToMvn_test.py diff --git a/tools/mo/unit_tests/extensions/analysis/__init__.py b/tools/mo/unit_tests/mo/front/onnx/__init__.py similarity index 100% rename from tools/mo/unit_tests/extensions/analysis/__init__.py rename to tools/mo/unit_tests/mo/front/onnx/__init__.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/activation_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/activation_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/activation_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/activation_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/affine_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/affine_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/affine_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/affine_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/conv_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/conv_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/conv_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/conv_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/crop_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/crop_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/crop_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/crop_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/detection_output_test.py b/tools/mo/unit_tests/mo/front/onnx/detection_output_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/detection_output_test.py rename to tools/mo/unit_tests/mo/front/onnx/detection_output_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/gru_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/gru_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/gru_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/gru_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/image_scaler_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/image_scaler_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/image_scaler_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/image_scaler_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/instance_normalization_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/instance_normalization_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/instance_normalization_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/instance_normalization_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/lstm_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/lstm_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/lstm_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/lstm_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/normalize_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/normalize_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/normalize_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/normalize_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/pad_converter_test.py b/tools/mo/unit_tests/mo/front/onnx/pad_converter_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/pad_converter_test.py rename to tools/mo/unit_tests/mo/front/onnx/pad_converter_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/pad_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/pad_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/pad_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/pad_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/priorbox_clustered_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/priorbox_clustered_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/priorbox_clustered_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/priorbox_clustered_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/priorbox_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/priorbox_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/priorbox_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/priorbox_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/rnn_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/rnn_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/rnn_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/rnn_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/squeeze_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/squeeze_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/squeeze_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/squeeze_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/transpose_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/transpose_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/transpose_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/transpose_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/unsqueeze_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/unsqueeze_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/unsqueeze_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/unsqueeze_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/onnx/upsample_ext_test.py b/tools/mo/unit_tests/mo/front/onnx/upsample_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/onnx/upsample_ext_test.py rename to tools/mo/unit_tests/mo/front/onnx/upsample_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/output_cut_test.py b/tools/mo/unit_tests/mo/front/output_cut_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/output_cut_test.py rename to tools/mo/unit_tests/mo/front/output_cut_test.py diff --git a/tools/mo/unit_tests/extensions/front/rank_decomposer_test.py b/tools/mo/unit_tests/mo/front/rank_decomposer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/rank_decomposer_test.py rename to tools/mo/unit_tests/mo/front/rank_decomposer_test.py diff --git a/tools/mo/unit_tests/extensions/front/reciprocal_test.py b/tools/mo/unit_tests/mo/front/reciprocal_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/reciprocal_test.py rename to tools/mo/unit_tests/mo/front/reciprocal_test.py diff --git a/tools/mo/unit_tests/extensions/front/reduce_axis_normalizer_test.py b/tools/mo/unit_tests/mo/front/reduce_axis_normalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/reduce_axis_normalizer_test.py rename to tools/mo/unit_tests/mo/front/reduce_axis_normalizer_test.py diff --git a/tools/mo/unit_tests/extensions/front/scatter_normalizer_test.py b/tools/mo/unit_tests/mo/front/scatter_normalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/scatter_normalizer_test.py rename to tools/mo/unit_tests/mo/front/scatter_normalizer_test.py diff --git a/tools/mo/unit_tests/extensions/front/size_replacer_test.py b/tools/mo/unit_tests/mo/front/size_replacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/size_replacer_test.py rename to tools/mo/unit_tests/mo/front/size_replacer_test.py diff --git a/tools/mo/unit_tests/extensions/front/softsign_replacer_test.py b/tools/mo/unit_tests/mo/front/softsign_replacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/softsign_replacer_test.py rename to tools/mo/unit_tests/mo/front/softsign_replacer_test.py diff --git a/tools/mo/unit_tests/extensions/front/split_normalizer_test.py b/tools/mo/unit_tests/mo/front/split_normalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/split_normalizer_test.py rename to tools/mo/unit_tests/mo/front/split_normalizer_test.py diff --git a/tools/mo/unit_tests/extensions/front/sub_test.py b/tools/mo/unit_tests/mo/front/sub_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/sub_test.py rename to tools/mo/unit_tests/mo/front/sub_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/CTCGreedyDecoderReplacement_test.py b/tools/mo/unit_tests/mo/front/tf/CTCGreedyDecoderReplacement_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/CTCGreedyDecoderReplacement_test.py rename to tools/mo/unit_tests/mo/front/tf/CTCGreedyDecoderReplacement_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/CTCLossReplacement_test.py b/tools/mo/unit_tests/mo/front/tf/CTCLossReplacement_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/CTCLossReplacement_test.py rename to tools/mo/unit_tests/mo/front/tf/CTCLossReplacement_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/ComplexAbsAfterComplex_test.py b/tools/mo/unit_tests/mo/front/tf/ComplexAbsAfterComplex_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/ComplexAbsAfterComplex_test.py rename to tools/mo/unit_tests/mo/front/tf/ComplexAbsAfterComplex_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/ComplexAbs_test.py b/tools/mo/unit_tests/mo/front/tf/ComplexAbs_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/ComplexAbs_test.py rename to tools/mo/unit_tests/mo/front/tf/ComplexAbs_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/CorrectRollAxes_test.py b/tools/mo/unit_tests/mo/front/tf/CorrectRollAxes_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/CorrectRollAxes_test.py rename to tools/mo/unit_tests/mo/front/tf/CorrectRollAxes_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/IteratorGetNextCut_test.py b/tools/mo/unit_tests/mo/front/tf/IteratorGetNextCut_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/IteratorGetNextCut_test.py rename to tools/mo/unit_tests/mo/front/tf/IteratorGetNextCut_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/NonConstBeginStridedSliceReplacement_test.py b/tools/mo/unit_tests/mo/front/tf/NonConstBeginStridedSliceReplacement_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/NonConstBeginStridedSliceReplacement_test.py rename to tools/mo/unit_tests/mo/front/tf/NonConstBeginStridedSliceReplacement_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/ObjectDetectionAPI_test.py b/tools/mo/unit_tests/mo/front/tf/ObjectDetectionAPI_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/ObjectDetectionAPI_test.py rename to tools/mo/unit_tests/mo/front/tf/ObjectDetectionAPI_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/RollRealImagPack_test.py b/tools/mo/unit_tests/mo/front/tf/RollRealImagPack_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/RollRealImagPack_test.py rename to tools/mo/unit_tests/mo/front/tf/RollRealImagPack_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/SSliceComplex_test.py b/tools/mo/unit_tests/mo/front/tf/SSliceComplex_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/SSliceComplex_test.py rename to tools/mo/unit_tests/mo/front/tf/SSliceComplex_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/SwitchMergeOptimization_test.py b/tools/mo/unit_tests/mo/front/tf/SwitchMergeOptimization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/SwitchMergeOptimization_test.py rename to tools/mo/unit_tests/mo/front/tf/SwitchMergeOptimization_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/TFFFTToDFT_test.py b/tools/mo/unit_tests/mo/front/tf/TFFFTToDFT_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/TFFFTToDFT_test.py rename to tools/mo/unit_tests/mo/front/tf/TFFFTToDFT_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/TFSliceToSlice_test.py b/tools/mo/unit_tests/mo/front/tf/TFSliceToSlice_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/TFSliceToSlice_test.py rename to tools/mo/unit_tests/mo/front/tf/TFSliceToSlice_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/WhereDecomposition_test.py b/tools/mo/unit_tests/mo/front/tf/WhereDecomposition_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/WhereDecomposition_test.py rename to tools/mo/unit_tests/mo/front/tf/WhereDecomposition_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/concat_ext_test.py b/tools/mo/unit_tests/mo/front/tf/concat_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/concat_ext_test.py rename to tools/mo/unit_tests/mo/front/tf/concat_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/concat_test.py b/tools/mo/unit_tests/mo/front/tf/concat_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/concat_test.py rename to tools/mo/unit_tests/mo/front/tf/concat_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/conv_ext_test.py b/tools/mo/unit_tests/mo/front/tf/conv_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/conv_ext_test.py rename to tools/mo/unit_tests/mo/front/tf/conv_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/deconv_ext_test.py b/tools/mo/unit_tests/mo/front/tf/deconv_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/deconv_ext_test.py rename to tools/mo/unit_tests/mo/front/tf/deconv_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/embedding_segments_operation_fusing_test.py b/tools/mo/unit_tests/mo/front/tf/embedding_segments_operation_fusing_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/embedding_segments_operation_fusing_test.py rename to tools/mo/unit_tests/mo/front/tf/embedding_segments_operation_fusing_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/embedding_segments_sum_test.py b/tools/mo/unit_tests/mo/front/tf/embedding_segments_sum_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/embedding_segments_sum_test.py rename to tools/mo/unit_tests/mo/front/tf/embedding_segments_sum_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/fifo_replacer_test.py b/tools/mo/unit_tests/mo/front/tf/fifo_replacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/fifo_replacer_test.py rename to tools/mo/unit_tests/mo/front/tf/fifo_replacer_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/floor_div_test.py b/tools/mo/unit_tests/mo/front/tf/floor_div_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/floor_div_test.py rename to tools/mo/unit_tests/mo/front/tf/floor_div_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/identityN_to_identity_test.py b/tools/mo/unit_tests/mo/front/tf/identityN_to_identity_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/identityN_to_identity_test.py rename to tools/mo/unit_tests/mo/front/tf/identityN_to_identity_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/mvn_unrolled_test.py b/tools/mo/unit_tests/mo/front/tf/mvn_unrolled_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/mvn_unrolled_test.py rename to tools/mo/unit_tests/mo/front/tf/mvn_unrolled_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/next_iteration_ext_test.py b/tools/mo/unit_tests/mo/front/tf/next_iteration_ext_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/next_iteration_ext_test.py rename to tools/mo/unit_tests/mo/front/tf/next_iteration_ext_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/pad_tf_to_pad_test.py b/tools/mo/unit_tests/mo/front/tf/pad_tf_to_pad_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/pad_tf_to_pad_test.py rename to tools/mo/unit_tests/mo/front/tf/pad_tf_to_pad_test.py diff --git a/tools/mo/unit_tests/extensions/front/tf/sparse_to_dense_replacer_test.py b/tools/mo/unit_tests/mo/front/tf/sparse_to_dense_replacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/front/tf/sparse_to_dense_replacer_test.py rename to tools/mo/unit_tests/mo/front/tf/sparse_to_dense_replacer_test.py diff --git a/tools/mo/unit_tests/extensions/load/tf/loader_test.py b/tools/mo/unit_tests/mo/load/loader_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/load/tf/loader_test.py rename to tools/mo/unit_tests/mo/load/loader_test.py diff --git a/tools/mo/unit_tests/mo/main_test_actual.py b/tools/mo/unit_tests/mo/main_test_actual.py index 76b9c6c9f05..3756dcf46d4 100644 --- a/tools/mo/unit_tests/mo/main_test_actual.py +++ b/tools/mo/unit_tests/mo/main_test_actual.py @@ -22,7 +22,7 @@ ngraph_needed = pytest.mark.skipif(not ngraph_available, class TestMainErrors(unittest.TestCase): @patch('argparse.ArgumentParser.parse_args', return_value=argparse.Namespace()) - @patch('mo.main.driver', side_effect=FrameworkError('FW ERROR MESSAGE')) + @patch('openvino.tools.mo.main.driver', side_effect=FrameworkError('FW ERROR MESSAGE')) @ngraph_needed def test_FrameworkError(self, mock_argparse, mock_driver): with self.assertLogs() as logger: diff --git a/tools/mo/unit_tests/extensions/middle/AddIsCyclicAttribute_test.py b/tools/mo/unit_tests/mo/middle/AddIsCyclicAttribute_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/AddIsCyclicAttribute_test.py rename to tools/mo/unit_tests/mo/middle/AddIsCyclicAttribute_test.py diff --git a/tools/mo/unit_tests/extensions/middle/AddMeanScaleValues_test.py b/tools/mo/unit_tests/mo/middle/AddMeanScaleValues_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/AddMeanScaleValues_test.py rename to tools/mo/unit_tests/mo/middle/AddMeanScaleValues_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ArgOpsToTopK_test.py b/tools/mo/unit_tests/mo/middle/ArgOpsToTopK_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ArgOpsToTopK_test.py rename to tools/mo/unit_tests/mo/middle/ArgOpsToTopK_test.py diff --git a/tools/mo/unit_tests/extensions/middle/CheckForCycle_test.py b/tools/mo/unit_tests/mo/middle/CheckForCycle_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/CheckForCycle_test.py rename to tools/mo/unit_tests/mo/middle/CheckForCycle_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ConcatOptimization_test.py b/tools/mo/unit_tests/mo/middle/ConcatOptimization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ConcatOptimization_test.py rename to tools/mo/unit_tests/mo/middle/ConcatOptimization_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ConvertGroupedStridedSlice_test.py b/tools/mo/unit_tests/mo/middle/ConvertGroupedStridedSlice_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ConvertGroupedStridedSlice_test.py rename to tools/mo/unit_tests/mo/middle/ConvertGroupedStridedSlice_test.py diff --git a/tools/mo/unit_tests/extensions/middle/CutInputHavingZeroDimFromConcat_test.py b/tools/mo/unit_tests/mo/middle/CutInputHavingZeroDimFromConcat_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/CutInputHavingZeroDimFromConcat_test.py rename to tools/mo/unit_tests/mo/middle/CutInputHavingZeroDimFromConcat_test.py diff --git a/tools/mo/unit_tests/extensions/middle/EltwiseInputReshape_test.py b/tools/mo/unit_tests/mo/middle/EltwiseInputReshape_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/EltwiseInputReshape_test.py rename to tools/mo/unit_tests/mo/middle/EltwiseInputReshape_test.py diff --git a/tools/mo/unit_tests/extensions/middle/FakeSplitOutputs_test.py b/tools/mo/unit_tests/mo/middle/FakeSplitOutputs_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/FakeSplitOutputs_test.py rename to tools/mo/unit_tests/mo/middle/FakeSplitOutputs_test.py diff --git a/tools/mo/unit_tests/extensions/middle/FusedBatchNormTraining_test.py b/tools/mo/unit_tests/mo/middle/FusedBatchNormTraining_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/FusedBatchNormTraining_test.py rename to tools/mo/unit_tests/mo/middle/FusedBatchNormTraining_test.py diff --git a/tools/mo/unit_tests/extensions/middle/GroupNorm_test.py b/tools/mo/unit_tests/mo/middle/GroupNorm_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/GroupNorm_test.py rename to tools/mo/unit_tests/mo/middle/GroupNorm_test.py diff --git a/tools/mo/unit_tests/extensions/middle/InsertSelect_test.py b/tools/mo/unit_tests/mo/middle/InsertSelect_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/InsertSelect_test.py rename to tools/mo/unit_tests/mo/middle/InsertSelect_test.py diff --git a/tools/mo/unit_tests/extensions/middle/InterpolateSequenceToInterpolate_test.py b/tools/mo/unit_tests/mo/middle/InterpolateSequenceToInterpolate_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/InterpolateSequenceToInterpolate_test.py rename to tools/mo/unit_tests/mo/middle/InterpolateSequenceToInterpolate_test.py diff --git a/tools/mo/unit_tests/extensions/middle/L2NormFusing_test.py b/tools/mo/unit_tests/mo/middle/L2NormFusing_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/L2NormFusing_test.py rename to tools/mo/unit_tests/mo/middle/L2NormFusing_test.py diff --git a/tools/mo/unit_tests/extensions/middle/LayoutChangeForEinsum_test.py b/tools/mo/unit_tests/mo/middle/LayoutChangeForEinsum_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/LayoutChangeForEinsum_test.py rename to tools/mo/unit_tests/mo/middle/LayoutChangeForEinsum_test.py diff --git a/tools/mo/unit_tests/extensions/middle/LeakyReluPattern_test.py b/tools/mo/unit_tests/mo/middle/LeakyReluPattern_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/LeakyReluPattern_test.py rename to tools/mo/unit_tests/mo/middle/LeakyReluPattern_test.py diff --git a/tools/mo/unit_tests/extensions/middle/MXTileReplacer_test.py b/tools/mo/unit_tests/mo/middle/MXTileReplacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/MXTileReplacer_test.py rename to tools/mo/unit_tests/mo/middle/MXTileReplacer_test.py diff --git a/tools/mo/unit_tests/extensions/middle/MakeKaldiConstReshapable_test.py b/tools/mo/unit_tests/mo/middle/MakeKaldiConstReshapable_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/MakeKaldiConstReshapable_test.py rename to tools/mo/unit_tests/mo/middle/MakeKaldiConstReshapable_test.py diff --git a/tools/mo/unit_tests/extensions/middle/MulQuantizeFuse_test.py b/tools/mo/unit_tests/mo/middle/MulQuantizeFuse_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/MulQuantizeFuse_test.py rename to tools/mo/unit_tests/mo/middle/MulQuantizeFuse_test.py diff --git a/tools/mo/unit_tests/extensions/middle/PoolV2ToAttributedPool_test.py b/tools/mo/unit_tests/mo/middle/PoolV2ToAttributedPool_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/PoolV2ToAttributedPool_test.py rename to tools/mo/unit_tests/mo/middle/PoolV2ToAttributedPool_test.py diff --git a/tools/mo/unit_tests/extensions/middle/PreserveRuntimeInfo_test.py b/tools/mo/unit_tests/mo/middle/PreserveRuntimeInfo_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/PreserveRuntimeInfo_test.py rename to tools/mo/unit_tests/mo/middle/PreserveRuntimeInfo_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ReluQuantizeFuse_test.py b/tools/mo/unit_tests/mo/middle/ReluQuantizeFuse_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ReluQuantizeFuse_test.py rename to tools/mo/unit_tests/mo/middle/ReluQuantizeFuse_test.py diff --git a/tools/mo/unit_tests/extensions/middle/RemoveDuplicationMemory_test.py b/tools/mo/unit_tests/mo/middle/RemoveDuplicationMemory_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/RemoveDuplicationMemory_test.py rename to tools/mo/unit_tests/mo/middle/RemoveDuplicationMemory_test.py diff --git a/tools/mo/unit_tests/extensions/middle/RemoveUselessConcatSplit_test.py b/tools/mo/unit_tests/mo/middle/RemoveUselessConcatSplit_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/RemoveUselessConcatSplit_test.py rename to tools/mo/unit_tests/mo/middle/RemoveUselessConcatSplit_test.py diff --git a/tools/mo/unit_tests/extensions/middle/RemoveUselessCrops_test.py b/tools/mo/unit_tests/mo/middle/RemoveUselessCrops_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/RemoveUselessCrops_test.py rename to tools/mo/unit_tests/mo/middle/RemoveUselessCrops_test.py diff --git a/tools/mo/unit_tests/extensions/middle/RemoveUselessPad_test.py b/tools/mo/unit_tests/mo/middle/RemoveUselessPad_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/RemoveUselessPad_test.py rename to tools/mo/unit_tests/mo/middle/RemoveUselessPad_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ReplaceMemoryOffsetWithSplice_test.py b/tools/mo/unit_tests/mo/middle/ReplaceMemoryOffsetWithSplice_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ReplaceMemoryOffsetWithSplice_test.py rename to tools/mo/unit_tests/mo/middle/ReplaceMemoryOffsetWithSplice_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ReplacePNormNodePattern_test.py b/tools/mo/unit_tests/mo/middle/ReplacePNormNodePattern_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ReplacePNormNodePattern_test.py rename to tools/mo/unit_tests/mo/middle/ReplacePNormNodePattern_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ReplaceSpliceNodePattern_test.py b/tools/mo/unit_tests/mo/middle/ReplaceSpliceNodePattern_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ReplaceSpliceNodePattern_test.py rename to tools/mo/unit_tests/mo/middle/ReplaceSpliceNodePattern_test.py diff --git a/tools/mo/unit_tests/extensions/middle/ReverseTransposeNormalization_test.py b/tools/mo/unit_tests/mo/middle/ReverseTransposeNormalization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/ReverseTransposeNormalization_test.py rename to tools/mo/unit_tests/mo/middle/ReverseTransposeNormalization_test.py diff --git a/tools/mo/unit_tests/extensions/middle/SharedWeightsDuplication_test.py b/tools/mo/unit_tests/mo/middle/SharedWeightsDuplication_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/SharedWeightsDuplication_test.py rename to tools/mo/unit_tests/mo/middle/SharedWeightsDuplication_test.py diff --git a/tools/mo/unit_tests/extensions/middle/SliceConverter_test.py b/tools/mo/unit_tests/mo/middle/SliceConverter_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/SliceConverter_test.py rename to tools/mo/unit_tests/mo/middle/SliceConverter_test.py diff --git a/tools/mo/unit_tests/extensions/middle/SliceLikeToStridedSlice_test.py b/tools/mo/unit_tests/mo/middle/SliceLikeToStridedSlice_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/SliceLikeToStridedSlice_test.py rename to tools/mo/unit_tests/mo/middle/SliceLikeToStridedSlice_test.py diff --git a/tools/mo/unit_tests/extensions/middle/SplitConcatPairToInterpolate_test.py b/tools/mo/unit_tests/mo/middle/SplitConcatPairToInterpolate_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/SplitConcatPairToInterpolate_test.py rename to tools/mo/unit_tests/mo/middle/SplitConcatPairToInterpolate_test.py diff --git a/tools/mo/unit_tests/extensions/middle/StridedSliceNormalizer_test.py b/tools/mo/unit_tests/mo/middle/StridedSliceNormalizer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/StridedSliceNormalizer_test.py rename to tools/mo/unit_tests/mo/middle/StridedSliceNormalizer_test.py diff --git a/tools/mo/unit_tests/extensions/middle/StridedSliceReplacer_test.py b/tools/mo/unit_tests/mo/middle/StridedSliceReplacer_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/StridedSliceReplacer_test.py rename to tools/mo/unit_tests/mo/middle/StridedSliceReplacer_test.py diff --git a/tools/mo/unit_tests/extensions/middle/TensorIteratorBackEdge_test.py b/tools/mo/unit_tests/mo/middle/TensorIteratorBackEdge_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/TensorIteratorBackEdge_test.py rename to tools/mo/unit_tests/mo/middle/TensorIteratorBackEdge_test.py diff --git a/tools/mo/unit_tests/extensions/middle/TensorIteratorCondition_test.py b/tools/mo/unit_tests/mo/middle/TensorIteratorCondition_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/TensorIteratorCondition_test.py rename to tools/mo/unit_tests/mo/middle/TensorIteratorCondition_test.py diff --git a/tools/mo/unit_tests/extensions/middle/TensorIteratorInput_test.py b/tools/mo/unit_tests/mo/middle/TensorIteratorInput_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/TensorIteratorInput_test.py rename to tools/mo/unit_tests/mo/middle/TensorIteratorInput_test.py diff --git a/tools/mo/unit_tests/extensions/middle/TensorIteratorOutput_test.py b/tools/mo/unit_tests/mo/middle/TensorIteratorOutput_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/TensorIteratorOutput_test.py rename to tools/mo/unit_tests/mo/middle/TensorIteratorOutput_test.py diff --git a/tools/mo/unit_tests/extensions/middle/UnsqueezeTileReshapeBlockToInterpolate_test.py b/tools/mo/unit_tests/mo/middle/UnsqueezeTileReshapeBlockToInterpolate_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/UnsqueezeTileReshapeBlockToInterpolate_test.py rename to tools/mo/unit_tests/mo/middle/UnsqueezeTileReshapeBlockToInterpolate_test.py diff --git a/tools/mo/unit_tests/extensions/middle/UpsampleToResample_test.py b/tools/mo/unit_tests/mo/middle/UpsampleToResample_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/UpsampleToResample_test.py rename to tools/mo/unit_tests/mo/middle/UpsampleToResample_test.py diff --git a/tools/mo/unit_tests/extensions/middle/dequantize_linear_resolver_test.py b/tools/mo/unit_tests/mo/middle/dequantize_linear_resolver_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/dequantize_linear_resolver_test.py rename to tools/mo/unit_tests/mo/middle/dequantize_linear_resolver_test.py diff --git a/tools/mo/unit_tests/extensions/middle/quantize_fuses_test.py b/tools/mo/unit_tests/mo/middle/quantize_fuses_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/quantize_fuses_test.py rename to tools/mo/unit_tests/mo/middle/quantize_fuses_test.py diff --git a/tools/mo/unit_tests/extensions/middle/quantize_linear_resolver_test.py b/tools/mo/unit_tests/mo/middle/quantize_linear_resolver_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/quantize_linear_resolver_test.py rename to tools/mo/unit_tests/mo/middle/quantize_linear_resolver_test.py diff --git a/tools/mo/unit_tests/extensions/middle/reverse_tensor_iterator_test.py b/tools/mo/unit_tests/mo/middle/reverse_tensor_iterator_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/reverse_tensor_iterator_test.py rename to tools/mo/unit_tests/mo/middle/reverse_tensor_iterator_test.py diff --git a/tools/mo/unit_tests/extensions/middle/sparse_reshape_test.py b/tools/mo/unit_tests/mo/middle/sparse_reshape_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/middle/sparse_reshape_test.py rename to tools/mo/unit_tests/mo/middle/sparse_reshape_test.py diff --git a/tools/mo/unit_tests/extensions/ops/ExtractImagePatches_test.py b/tools/mo/unit_tests/mo/ops/ExtractImagePatches_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/ExtractImagePatches_test.py rename to tools/mo/unit_tests/mo/ops/ExtractImagePatches_test.py diff --git a/tools/mo/unit_tests/extensions/ops/If_test.py b/tools/mo/unit_tests/mo/ops/If_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/If_test.py rename to tools/mo/unit_tests/mo/ops/If_test.py diff --git a/tools/mo/unit_tests/extensions/ops/LookupTableInsert_test.py b/tools/mo/unit_tests/mo/ops/LookupTableInsert_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/LookupTableInsert_test.py rename to tools/mo/unit_tests/mo/ops/LookupTableInsert_test.py diff --git a/tools/mo/unit_tests/extensions/ops/MatMul_test.py b/tools/mo/unit_tests/mo/ops/MatMul_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/MatMul_test.py rename to tools/mo/unit_tests/mo/ops/MatMul_test.py diff --git a/tools/mo/unit_tests/extensions/ops/MatMul_value_propagation_test.py b/tools/mo/unit_tests/mo/ops/MatMul_value_propagation_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/MatMul_value_propagation_test.py rename to tools/mo/unit_tests/mo/ops/MatMul_value_propagation_test.py diff --git a/tools/mo/unit_tests/extensions/ops/ONNXResize11_test.py b/tools/mo/unit_tests/mo/ops/ONNXResize11_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/ONNXResize11_test.py rename to tools/mo/unit_tests/mo/ops/ONNXResize11_test.py diff --git a/tools/mo/unit_tests/extensions/ops/ReduceOps_test.py b/tools/mo/unit_tests/mo/ops/ReduceOps_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/ReduceOps_test.py rename to tools/mo/unit_tests/mo/ops/ReduceOps_test.py diff --git a/tools/mo/unit_tests/extensions/ops/Reverse_test.py b/tools/mo/unit_tests/mo/ops/Reverse_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/Reverse_test.py rename to tools/mo/unit_tests/mo/ops/Reverse_test.py diff --git a/tools/mo/unit_tests/extensions/ops/activation_test.py b/tools/mo/unit_tests/mo/ops/activation_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/activation_test.py rename to tools/mo/unit_tests/mo/ops/activation_test.py diff --git a/tools/mo/unit_tests/extensions/ops/argmax_test.py b/tools/mo/unit_tests/mo/ops/argmax_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/argmax_test.py rename to tools/mo/unit_tests/mo/ops/argmax_test.py diff --git a/tools/mo/unit_tests/extensions/ops/assert_test.py b/tools/mo/unit_tests/mo/ops/assert_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/assert_test.py rename to tools/mo/unit_tests/mo/ops/assert_test.py diff --git a/tools/mo/unit_tests/extensions/ops/bucketize_test.py b/tools/mo/unit_tests/mo/ops/bucketize_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/bucketize_test.py rename to tools/mo/unit_tests/mo/ops/bucketize_test.py diff --git a/tools/mo/unit_tests/extensions/ops/cast_test.py b/tools/mo/unit_tests/mo/ops/cast_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/cast_test.py rename to tools/mo/unit_tests/mo/ops/cast_test.py diff --git a/tools/mo/unit_tests/extensions/ops/ctc_greedy_decoder_test.py b/tools/mo/unit_tests/mo/ops/ctc_greedy_decoder_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/ctc_greedy_decoder_test.py rename to tools/mo/unit_tests/mo/ops/ctc_greedy_decoder_test.py diff --git a/tools/mo/unit_tests/extensions/ops/ctc_loss_test.py b/tools/mo/unit_tests/mo/ops/ctc_loss_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/ctc_loss_test.py rename to tools/mo/unit_tests/mo/ops/ctc_loss_test.py diff --git a/tools/mo/unit_tests/extensions/ops/cumsum_test.py b/tools/mo/unit_tests/mo/ops/cumsum_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/cumsum_test.py rename to tools/mo/unit_tests/mo/ops/cumsum_test.py diff --git a/tools/mo/unit_tests/extensions/ops/depth_to_space_test.py b/tools/mo/unit_tests/mo/ops/depth_to_space_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/depth_to_space_test.py rename to tools/mo/unit_tests/mo/ops/depth_to_space_test.py diff --git a/tools/mo/unit_tests/extensions/ops/dft_signal_size_canonicalization_test.py b/tools/mo/unit_tests/mo/ops/dft_signal_size_canonicalization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/dft_signal_size_canonicalization_test.py rename to tools/mo/unit_tests/mo/ops/dft_signal_size_canonicalization_test.py diff --git a/tools/mo/unit_tests/extensions/ops/div_value_propagation_test.py b/tools/mo/unit_tests/mo/ops/div_value_propagation_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/div_value_propagation_test.py rename to tools/mo/unit_tests/mo/ops/div_value_propagation_test.py diff --git a/tools/mo/unit_tests/extensions/ops/einsum_test.py b/tools/mo/unit_tests/mo/ops/einsum_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/einsum_test.py rename to tools/mo/unit_tests/mo/ops/einsum_test.py diff --git a/tools/mo/unit_tests/extensions/ops/elementwise_test.py b/tools/mo/unit_tests/mo/ops/elementwise_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/elementwise_test.py rename to tools/mo/unit_tests/mo/ops/elementwise_test.py diff --git a/tools/mo/unit_tests/extensions/ops/embedding_bag_test.py b/tools/mo/unit_tests/mo/ops/embedding_bag_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/embedding_bag_test.py rename to tools/mo/unit_tests/mo/ops/embedding_bag_test.py diff --git a/tools/mo/unit_tests/extensions/ops/gather_test.py b/tools/mo/unit_tests/mo/ops/gather_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/gather_test.py rename to tools/mo/unit_tests/mo/ops/gather_test.py diff --git a/tools/mo/unit_tests/extensions/ops/gatherelements_test.py b/tools/mo/unit_tests/mo/ops/gatherelements_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/gatherelements_test.py rename to tools/mo/unit_tests/mo/ops/gatherelements_test.py diff --git a/tools/mo/unit_tests/extensions/ops/gathernd_test.py b/tools/mo/unit_tests/mo/ops/gathernd_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/gathernd_test.py rename to tools/mo/unit_tests/mo/ops/gathernd_test.py diff --git a/tools/mo/unit_tests/extensions/ops/grn_test.py b/tools/mo/unit_tests/mo/ops/grn_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/grn_test.py rename to tools/mo/unit_tests/mo/ops/grn_test.py diff --git a/tools/mo/unit_tests/extensions/ops/instance_normalization_test.py b/tools/mo/unit_tests/mo/ops/instance_normalization_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/instance_normalization_test.py rename to tools/mo/unit_tests/mo/ops/instance_normalization_test.py diff --git a/tools/mo/unit_tests/extensions/ops/interpolate_test.py b/tools/mo/unit_tests/mo/ops/interpolate_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/interpolate_test.py rename to tools/mo/unit_tests/mo/ops/interpolate_test.py diff --git a/tools/mo/unit_tests/extensions/ops/merge_test.py b/tools/mo/unit_tests/mo/ops/merge_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/merge_test.py rename to tools/mo/unit_tests/mo/ops/merge_test.py diff --git a/tools/mo/unit_tests/extensions/ops/non_max_suppression_test.py b/tools/mo/unit_tests/mo/ops/non_max_suppression_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/non_max_suppression_test.py rename to tools/mo/unit_tests/mo/ops/non_max_suppression_test.py diff --git a/tools/mo/unit_tests/extensions/ops/normalize_test.py b/tools/mo/unit_tests/mo/ops/normalize_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/normalize_test.py rename to tools/mo/unit_tests/mo/ops/normalize_test.py diff --git a/tools/mo/unit_tests/extensions/ops/one_hot_test.py b/tools/mo/unit_tests/mo/ops/one_hot_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/one_hot_test.py rename to tools/mo/unit_tests/mo/ops/one_hot_test.py diff --git a/tools/mo/unit_tests/extensions/ops/priorbox_clustered_test.py b/tools/mo/unit_tests/mo/ops/priorbox_clustered_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/priorbox_clustered_test.py rename to tools/mo/unit_tests/mo/ops/priorbox_clustered_test.py diff --git a/tools/mo/unit_tests/extensions/ops/priorbox_test.py b/tools/mo/unit_tests/mo/ops/priorbox_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/priorbox_test.py rename to tools/mo/unit_tests/mo/ops/priorbox_test.py diff --git a/tools/mo/unit_tests/extensions/ops/proposal_test.py b/tools/mo/unit_tests/mo/ops/proposal_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/proposal_test.py rename to tools/mo/unit_tests/mo/ops/proposal_test.py diff --git a/tools/mo/unit_tests/extensions/ops/psroipooling_test.py b/tools/mo/unit_tests/mo/ops/psroipooling_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/psroipooling_test.py rename to tools/mo/unit_tests/mo/ops/psroipooling_test.py diff --git a/tools/mo/unit_tests/extensions/ops/quantize_test.py b/tools/mo/unit_tests/mo/ops/quantize_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/quantize_test.py rename to tools/mo/unit_tests/mo/ops/quantize_test.py diff --git a/tools/mo/unit_tests/extensions/ops/regionyolo_test.py b/tools/mo/unit_tests/mo/ops/regionyolo_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/regionyolo_test.py rename to tools/mo/unit_tests/mo/ops/regionyolo_test.py diff --git a/tools/mo/unit_tests/extensions/ops/reorgyolo_test.py b/tools/mo/unit_tests/mo/ops/reorgyolo_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/reorgyolo_test.py rename to tools/mo/unit_tests/mo/ops/reorgyolo_test.py diff --git a/tools/mo/unit_tests/extensions/ops/scatter_test.py b/tools/mo/unit_tests/mo/ops/scatter_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/scatter_test.py rename to tools/mo/unit_tests/mo/ops/scatter_test.py diff --git a/tools/mo/unit_tests/extensions/ops/scatternd_test.py b/tools/mo/unit_tests/mo/ops/scatternd_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/scatternd_test.py rename to tools/mo/unit_tests/mo/ops/scatternd_test.py diff --git a/tools/mo/unit_tests/extensions/ops/select_test.py b/tools/mo/unit_tests/mo/ops/select_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/select_test.py rename to tools/mo/unit_tests/mo/ops/select_test.py diff --git a/tools/mo/unit_tests/extensions/ops/slice_like_test.py b/tools/mo/unit_tests/mo/ops/slice_like_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/slice_like_test.py rename to tools/mo/unit_tests/mo/ops/slice_like_test.py diff --git a/tools/mo/unit_tests/extensions/ops/space_to_depth_test.py b/tools/mo/unit_tests/mo/ops/space_to_depth_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/space_to_depth_test.py rename to tools/mo/unit_tests/mo/ops/space_to_depth_test.py diff --git a/tools/mo/unit_tests/extensions/ops/sparse_fill_empty_rows_test.py b/tools/mo/unit_tests/mo/ops/sparse_fill_empty_rows_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/sparse_fill_empty_rows_test.py rename to tools/mo/unit_tests/mo/ops/sparse_fill_empty_rows_test.py diff --git a/tools/mo/unit_tests/extensions/ops/sparse_reshape_test.py b/tools/mo/unit_tests/mo/ops/sparse_reshape_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/sparse_reshape_test.py rename to tools/mo/unit_tests/mo/ops/sparse_reshape_test.py diff --git a/tools/mo/unit_tests/extensions/ops/sparse_segment_mean_test.py b/tools/mo/unit_tests/mo/ops/sparse_segment_mean_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/sparse_segment_mean_test.py rename to tools/mo/unit_tests/mo/ops/sparse_segment_mean_test.py diff --git a/tools/mo/unit_tests/extensions/ops/sparse_segment_sqrtn_test.py b/tools/mo/unit_tests/mo/ops/sparse_segment_sqrtn_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/sparse_segment_sqrtn_test.py rename to tools/mo/unit_tests/mo/ops/sparse_segment_sqrtn_test.py diff --git a/tools/mo/unit_tests/extensions/ops/sparse_segment_sum_test.py b/tools/mo/unit_tests/mo/ops/sparse_segment_sum_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/sparse_segment_sum_test.py rename to tools/mo/unit_tests/mo/ops/sparse_segment_sum_test.py diff --git a/tools/mo/unit_tests/extensions/ops/split_test.py b/tools/mo/unit_tests/mo/ops/split_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/split_test.py rename to tools/mo/unit_tests/mo/ops/split_test.py diff --git a/tools/mo/unit_tests/extensions/ops/switch_test.py b/tools/mo/unit_tests/mo/ops/switch_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/switch_test.py rename to tools/mo/unit_tests/mo/ops/switch_test.py diff --git a/tools/mo/unit_tests/extensions/ops/topk_test.py b/tools/mo/unit_tests/mo/ops/topk_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/topk_test.py rename to tools/mo/unit_tests/mo/ops/topk_test.py diff --git a/tools/mo/unit_tests/extensions/ops/transpose_test.py b/tools/mo/unit_tests/mo/ops/transpose_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/transpose_test.py rename to tools/mo/unit_tests/mo/ops/transpose_test.py diff --git a/tools/mo/unit_tests/extensions/ops/unique_test.py b/tools/mo/unit_tests/mo/ops/unique_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/unique_test.py rename to tools/mo/unit_tests/mo/ops/unique_test.py diff --git a/tools/mo/unit_tests/extensions/ops/upsample_test.py b/tools/mo/unit_tests/mo/ops/upsample_test.py similarity index 100% rename from tools/mo/unit_tests/extensions/ops/upsample_test.py rename to tools/mo/unit_tests/mo/ops/upsample_test.py diff --git a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp index e23910ef623..2820d8e8ebd 100644 --- a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp +++ b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.cpp @@ -3,9 +3,9 @@ // #include "mock_mo_frontend.hpp" -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" using namespace ngraph; using namespace ov::frontend; diff --git a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp index 553870dd423..2a0c6dddab4 100644 --- a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp +++ b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_ov_frontend/mock_mo_frontend.hpp @@ -4,9 +4,9 @@ #pragma once -#include "common/frontend_defs.hpp" -#include "manager.hpp" #include "ngraph/visibility.hpp" +#include "openvino/frontend/manager.hpp" +#include "openvino/frontend/visibility.hpp" // Defined if we are building the plugin DLL (instead of using it) #ifdef mock_mo_ov_frontend_EXPORTS diff --git a/tools/openvino_dev/setup.py b/tools/openvino_dev/setup.py index a18d6991a75..44861d6a3ed 100644 --- a/tools/openvino_dev/setup.py +++ b/tools/openvino_dev/setup.py @@ -195,7 +195,7 @@ setup( author_email='openvino_pushbot@intel.com', url='https://docs.openvinotoolkit.org/latest/index.html', download_url='https://github.com/openvinotoolkit/openvino/tags', - description='OpenVINO™ Developer Package', + description='OpenVINO(TM) Development Tools', long_description=get_description(SCRIPT_DIR.parents[1] / 'docs/install_guides/pypi-openvino-dev.md'), long_description_content_type='text/markdown', classifiers=[ diff --git a/tools/pot/configs/simplified_mode_template.json b/tools/pot/configs/simplified_mode_template.json index 52db5686cd4..2df4aa1e898 100644 --- a/tools/pot/configs/simplified_mode_template.json +++ b/tools/pot/configs/simplified_mode_template.json @@ -17,6 +17,7 @@ of all possible parameters can be found in the default_quantization_spec.json */ "engine": { "type": "simplified", + "layout": "NCHW", // Layout of input data. Supported ["NCHW", "NHWC", "CHW", "CWH"] layout "data_source": "PATH_TO_SOURCE" // You can specify path to directory with images. Also you can // specify template for file names to filter images to load. // Templates are unix style (This option valid only in simplified mode) diff --git a/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware_common/utils.py b/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware_common/utils.py index 554425326e8..48aaf9ae825 100644 --- a/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware_common/utils.py +++ b/tools/pot/openvino/tools/pot/algorithms/quantization/accuracy_aware_common/utils.py @@ -17,7 +17,8 @@ from ....samplers.creator import create_sampler SPECIAL_METRICS = ['cmc', 'reid_map', 'pairwise_accuracy_subsets', 'pairwise_accuracy', 'normalized_embedding_accuracy', 'face_recognition_tafa_pair_metric', 'localization_recall', - 'coco_orig_keypoints_precision', 'coco_orig_segm_precision', 'coco_orig_keypoints_precision'] + 'coco_orig_keypoints_precision', 'coco_orig_segm_precision', 'coco_orig_keypoints_precision', + 'spearman_correlation_coef', 'pearson_correlation_coef'] METRICS_CONFIGS = {'sigmoid_recom_loss': {'metrics': 'log_loss', 'postprocessing': 'sigmoid_normalize_recommendation'}, diff --git a/tools/pot/openvino/tools/pot/data_loaders/creator.py b/tools/pot/openvino/tools/pot/data_loaders/creator.py index 14e76e92f00..f4cd1e05fa9 100644 --- a/tools/pot/openvino/tools/pot/data_loaders/creator.py +++ b/tools/pot/openvino/tools/pot/data_loaders/creator.py @@ -26,6 +26,7 @@ def create_data_loader(config, model): if tuple(in_node.shape) != (1, 3): data_loader = ImageLoader(config) data_loader.shape = in_node.shape + data_loader.get_layout(in_node) return data_loader if data_loader is None: diff --git a/tools/pot/openvino/tools/pot/data_loaders/image_loader.py b/tools/pot/openvino/tools/pot/data_loaders/image_loader.py index 4ba603555e6..d81a5586d4c 100644 --- a/tools/pot/openvino/tools/pot/data_loaders/image_loader.py +++ b/tools/pot/openvino/tools/pot/data_loaders/image_loader.py @@ -3,6 +3,7 @@ from cv2 import imread, IMREAD_GRAYSCALE +from openvino.runtime import Layout, Dimension # pylint: disable=E0611,E0401 from ..api.data_loader import DataLoader from ..data_loaders.utils import prepare_image, collect_img_files @@ -14,6 +15,7 @@ class ImageLoader(DataLoader): self._img_files = collect_img_files(config.data_source) self._shape = None + self._layout = config.get('layout', None) self._crop_central_fraction = config.get('central_fraction', None) def __getitem__(self, idx): @@ -37,4 +39,29 @@ class ImageLoader(DataLoader): if image is None: raise Exception('Can not read the image: {}'.format(img_path)) - return prepare_image(image, self.shape[-2:], self._crop_central_fraction) + return prepare_image(image, self._layout, self.shape[-2:], self._crop_central_fraction) + + def get_layout(self, input_node): + if self._layout is not None: + if 'C' not in self._layout or 'H' not in self._layout or 'W' not in self._layout: + raise ValueError('Unexpected {} layout'.format(self._layout)) + self._layout = Layout(self._layout) + return + + layout_from_ir = input_node.graph.graph.get('layout', None) + if layout_from_ir is not None: + self._layout = Layout(layout_from_ir) + return + + image_colors_dim = (Dimension(3), Dimension(1)) + num_dims = len(self._shape) + if num_dims == 4: + if self._shape[1] in image_colors_dim: + self._layout = Layout("NCHW") + elif self._shape[3] in image_colors_dim: + self._layout = Layout("NHWC") + elif num_dims == 3: + if self._shape[0] in image_colors_dim: + self._layout = Layout("CHW") + elif self._shape[2] in image_colors_dim: + self._layout = Layout("HWC") diff --git a/tools/pot/openvino/tools/pot/data_loaders/utils.py b/tools/pot/openvino/tools/pot/data_loaders/utils.py index d60d5b4d1ff..fde14d66ba2 100644 --- a/tools/pot/openvino/tools/pot/data_loaders/utils.py +++ b/tools/pot/openvino/tools/pot/data_loaders/utils.py @@ -9,6 +9,7 @@ from pathlib import Path import numpy as np import cv2 as cv +from openvino.runtime import Layout # pylint: disable=E0611,E0401 from openvino.tools.pot.utils.logger import get_logger logger = get_logger(__name__) @@ -34,12 +35,11 @@ def crop(image, central_fraction): return image[start_height:start_height + dst_height, start_width:start_width + dst_width] -def prepare_image(image, dst_shape, central_fraction=None): - +def prepare_image(image, layout, dst_shape, central_fraction=None): if central_fraction: image = crop(image, central_fraction) - if image.shape[-1] in [3, 1]: + if layout == Layout('NCHW') or layout == Layout('CHW'): image = cv.resize(image, dst_shape[::-1]) return image.transpose(2, 0, 1) diff --git a/tools/pot/tests/test_image_loading.py b/tools/pot/tests/test_image_loading.py index 0836e3025ff..fc520c19d48 100644 --- a/tools/pot/tests/test_image_loading.py +++ b/tools/pot/tests/test_image_loading.py @@ -44,3 +44,31 @@ def test_check_image(tmp_path, models, model_name, model_framework): num_images_in_dir = len(os.listdir(path_image_data)) assert num_images_from_data_loader == num_images_in_dir + + +TEST_MODELS_LAYOUT = [ + #('mobilenet-v2-pytorch', 'pytorch', 'NCHW', (3, 224, 224)), + #('mobilenet-v2-pytorch', 'pytorch', 'NHWC', (224, 224, 3)), + #('mobilenet-v2-pytorch', 'pytorch', None, (3, 224, 224)), + #('mobilenet-v1-1.0-224-tf', 'tf', None, (224, 224, 3)) +] + + +@pytest.mark.parametrize( + 'model_name, model_framework, layout, reference_shape', TEST_MODELS_LAYOUT, + ids=['{}_{}_{}_{}'.format(m[0], m[1], m[2], m[3]) for m in TEST_MODELS_LAYOUT]) +def test_check_layout(tmp_path, models, model_name, model_framework, layout, reference_shape): + test_dir = Path(__file__).parent + path_image_data = os.path.join(test_dir, "data/image_data") + + engine_config = Dict({"device": "CPU", + "type": "simplified", + "layout": layout, + "data_source": path_image_data}) + model = models.get(model_name, model_framework, tmp_path) + model = load_model(model.model_params) + + data_loader = create_data_loader(engine_config, model) + image = data_loader.item() + + assert image.shape == reference_shape diff --git a/tools/pot/tests/utils/open_model_zoo.py b/tools/pot/tests/utils/open_model_zoo.py index 02582e9d145..e49b7ec17c8 100644 --- a/tools/pot/tests/utils/open_model_zoo.py +++ b/tools/pot/tests/utils/open_model_zoo.py @@ -28,7 +28,7 @@ OMZ_DEFINITIONS_PATH = LIBS_ROOT/'open_model_zoo'/'data'/'dataset_definitions.ym sys.path.append(str(OMZ_DOWNLOADER_PATH / 'src')) # pylint: disable=E0611,C0413,C0411,E0401 importlib.reload(openvino) -from openvino.model_zoo._configuration import load_models +from openvino.model_zoo._configuration import load_models, ModelLoadingMode from openvino.model_zoo._common import MODEL_ROOT is_platform_windows = sys.platform.startswith('win') @@ -83,7 +83,7 @@ def convert(config): def get_models_list(): - return load_models(MODEL_ROOT, Dict(config=None)) + return load_models(MODEL_ROOT, Dict(config=None), mode=ModelLoadingMode.ignore_composite) def download_engine_config(model_name): diff --git a/tools/pot/thirdparty/open_model_zoo b/tools/pot/thirdparty/open_model_zoo index b7c83530a47..a04512d8553 160000 --- a/tools/pot/thirdparty/open_model_zoo +++ b/tools/pot/thirdparty/open_model_zoo @@ -1 +1 @@ -Subproject commit b7c83530a470734e3e4bde8fe0d80dcc2d9e9b2c +Subproject commit a04512d8553aed4b7bde5032141f28bfd26f6f5c