From a273d7ee266618381b3c0d119d693be676178bde Mon Sep 17 00:00:00 2001 From: Georgy Krivoruchko Date: Mon, 5 Aug 2024 17:06:03 +0400 Subject: [PATCH 1/7] [ONNX] Switched to ONNX 1.16.0 (#24242) - Switched to ONNX 1.16.0 - Removed WA for ONNX 1.15.0 - ONNXRuntime for tests 1.18.1 - 136748, 138876 --------- Co-authored-by: Ilya Lavrenov --- conan.lock | 2 +- conanfile.txt | 2 +- src/bindings/python/constraints.txt | 2 +- src/frontends/onnx/tests/__init__.py | 7 ++- .../onnx/tests/ci_utils/onnxruntime/version | 1 + .../onnx/tests/tests_python/test_backend.py | 57 ++++++++++++++++++- thirdparty/onnx/CMakeLists.txt | 16 ++---- tools/constraints.txt | 2 +- vcpkg.json | 2 +- 9 files changed, 72 insertions(+), 19 deletions(-) create mode 100644 src/frontends/onnx/tests/ci_utils/onnxruntime/version diff --git a/conan.lock b/conan.lock index d5e4bd423148e6..016de8e318e556 100644 --- a/conan.lock +++ b/conan.lock @@ -10,7 +10,7 @@ "opencl-icd-loader/2023.04.17#5f73dd9f0c023d416a7f162e320b9c77%1692732261.088", "opencl-headers/2023.04.17#3d98f2d12a67c2400de6f11d5335b5a6%1683936272.16", "opencl-clhpp-headers/2023.04.17#7c62fcc7ac2559d4839150d2ebaac5c8%1685450803.672", - "onnx/1.15.0#54b6d944e6995300bc7bcdd3a3206d74%1698840505.336", + "onnx/1.16.0#4d2d4f24d6f73b8a7551e001839631f0%1712404811.278", "onetbb/2021.10.0#cbb2fc43088070b48f6e4339bc8fa0e1%1693812561.235", "ittapi/3.24.0#9246125f13e7686dee2b0c992b71db94%1682969872.743", "hwloc/2.9.2#1c63e2eccac57048ae226e6c946ebf0e%1688677682.002", diff --git a/conanfile.txt b/conanfile.txt index cb23849a5daac5..fcfa99689805a0 100644 --- a/conanfile.txt +++ b/conanfile.txt @@ -8,7 +8,7 @@ opencl-icd-loader/[>=2023.04.17] rapidjson/[>=1.1.0] xbyak/[>=6.62] snappy/[>=1.1.7] -onnx/1.15.0 +onnx/1.16.0 pybind11/[>=2.10.1] flatbuffers/[>=22.9.24] diff --git a/src/bindings/python/constraints.txt b/src/bindings/python/constraints.txt index 693522adcb684e..e6eae012cfd3fc 100644 --- a/src/bindings/python/constraints.txt +++ b/src/bindings/python/constraints.txt @@ -21,4 +21,4 @@ paddlepaddle==2.5.2 tensorflow>=1.15.5,<2.15.0 six~=1.16.0 protobuf>=3.18.1,<4.0.0 -onnx==1.15.0 +onnx==1.16.0 diff --git a/src/frontends/onnx/tests/__init__.py b/src/frontends/onnx/tests/__init__.py index 7e3180dd6a49a2..c16eb57cd214f9 100644 --- a/src/frontends/onnx/tests/__init__.py +++ b/src/frontends/onnx/tests/__init__.py @@ -181,7 +181,12 @@ def xfail_test(reason="Mark the test as expected to fail", strict=True): "Not equal to tolerance") xfail_issue_122775 = xfail_test(reason="test_resize_downsample_scales_linear_cpu - " "Not equal to tolerance") -skip_misalignment = pytest.mark.skip(reason="Misalignment between onnx versions") # Need to enable after bumping to 1.15 skip_issue_127649 = pytest.mark.skip(reason="Not equal to tolerance rtol=0.001, atol=1e-07 - " "Mismatched elements: 1 / 1000 (0.1%)") +# ONNX 1.16 +skip_misalignment = pytest.mark.skip(reason="Misalignment between onnx versions") # Need to enable after bumping to 1.16 +xfail_issue_139934 = xfail_test(reason = "Int4 isn't supported") +xfail_issue_139936 = xfail_test(reason = "MaxPool accuracy fails") +xfail_issue_139937 = xfail_test(reason = "GroupNorm, QLinearMatMul, DequantizeLinear translation failed") +xfail_issue_139938 = xfail_test(reason = "QLinearMatMul accuracy fails") diff --git a/src/frontends/onnx/tests/ci_utils/onnxruntime/version b/src/frontends/onnx/tests/ci_utils/onnxruntime/version new file mode 100644 index 00000000000000..85c399f04d78df --- /dev/null +++ b/src/frontends/onnx/tests/ci_utils/onnxruntime/version @@ -0,0 +1 @@ +rel-1.18.1 diff --git a/src/frontends/onnx/tests/tests_python/test_backend.py b/src/frontends/onnx/tests/tests_python/test_backend.py index 5322d7ee0165c7..4c6c2659c893a6 100644 --- a/src/frontends/onnx/tests/tests_python/test_backend.py +++ b/src/frontends/onnx/tests/tests_python/test_backend.py @@ -85,6 +85,11 @@ xfail_issue_122775, xfail_issue_122776, skip_misalignment, + skip_issue_124587, + xfail_issue_139934, + xfail_issue_139936, + xfail_issue_139937, + xfail_issue_139938, ) from tests.tests_python.utils.onnx_backend import OpenVinoTestBackend @@ -691,6 +696,8 @@ def expect_fail(test_case_path, xfail): # type: (str) -> None "OnnxBackendNodeModelTest.test_ai_onnx_ml_label_encoder_string_int_no_default_cpu", "OnnxBackendNodeModelTest.test_ai_onnx_ml_label_encoder_tensor_mapping_cpu", "OnnxBackendNodeModelTest.test_ai_onnx_ml_label_encoder_tensor_value_only_mapping_cpu", + "OnnxBackendNodeModelTest.test_ai_onnx_ml_tree_ensemble_set_membership_cpu", + "OnnxBackendNodeModelTest.test_ai_onnx_ml_tree_ensemble_single_tree_cpu", ), ( xfail_issue_119925, @@ -783,7 +790,55 @@ def expect_fail(test_case_path, xfail): # type: (str) -> None "OnnxBackendNodeModelTest.test_gelu_default_2_expanded_cpu", "OnnxBackendNodeModelTest.test_reduce_log_sum_empty_set_expanded_cpu", "OnnxBackendNodeModelTest.test_reduce_log_sum_exp_empty_set_expanded_cpu", - ), + "OnnxBackendNodeModelTest.test_group_normalization_epsilon_cpu", + "OnnxBackendNodeModelTest.test_group_normalization_example_cpu", + "OnnxBackendNodeModelTest.test_qlinearmatmul_3D_int8_float16_cpu", + "OnnxBackendNodeModelTest.test_qlinearmatmul_3D_int8_float32_cpu", + "OnnxBackendNodeModelTest.test_qlinearmatmul_3D_uint8_float16_cpu", + "OnnxBackendNodeModelTest.test_quantizelinear_blocked_asymmetric_cpu", + "OnnxBackendNodeModelTest.test_quantizelinear_blocked_symmetric_cpu", + ), +<<<<<<< HEAD +======= + ( + skip_issue_124587, + "OnnxBackendNodeModelTest.test_split_variable_parts_1d_opset18_cpu", + "OnnxBackendNodeModelTest.test_split_variable_parts_2d_opset18_cpu", + "OnnxBackendNodeModelTest.test_split_variable_parts_default_axis_opset13_cpu", + "OnnxBackendNodeModelTest.test_split_variable_parts_default_axis_opset18_cpu", + ), + ( + xfail_issue_139934, + "OnnxBackendNodeModelTest.test_cast_FLOAT16_to_INT4_cpu", + "OnnxBackendNodeModelTest.test_cast_FLOAT16_to_UINT4_cpu", + "OnnxBackendNodeModelTest.test_cast_FLOAT_to_INT4_cpu", + "OnnxBackendNodeModelTest.test_cast_FLOAT_to_UINT4_cpu", + "OnnxBackendNodeModelTest.test_cast_INT4_to_FLOAT16_cpu", + "OnnxBackendNodeModelTest.test_cast_INT4_to_FLOAT_cpu", + "OnnxBackendNodeModelTest.test_cast_INT4_to_INT8_cpu", + "OnnxBackendNodeModelTest.test_cast_UINT4_to_FLOAT16_cpu", + "OnnxBackendNodeModelTest.test_cast_UINT4_to_FLOAT_cpu", + "OnnxBackendNodeModelTest.test_cast_UINT4_to_UINT8_cpu", + "OnnxBackendNodeModelTest.test_dequantizelinear_int4_cpu", + "OnnxBackendNodeModelTest.test_dequantizelinear_uint4_cpu", + "OnnxBackendNodeModelTest.test_quantizelinear_int4_cpu", + "OnnxBackendNodeModelTest.test_quantizelinear_uint4_cpu", + ), + ( + xfail_issue_139936, + "OnnxBackendNodeModelTest.test_maxpool_2d_ceil_output_size_reduce_by_one_cpu", + ), + ( + xfail_issue_139937, + "OnnxBackendNodeModelTest.test_dequantizelinear_blocked_cpu", + "OnnxBackendNodeModelTest.test_qlinearmatmul_2D_int8_float16_cpu", + ), + ( + xfail_issue_139938, + "OnnxBackendNodeModelTest.test_qlinearmatmul_2D_int8_float32_cpu", + "OnnxBackendNodeModelTest.test_qlinearmatmul_2D_uint8_float16_cpu", + ), +>>>>>>> 12a5e5a505... [ONNX] Switched to ONNX 1.16.0 (#24242) ] if platform.system() == 'Darwin': diff --git a/thirdparty/onnx/CMakeLists.txt b/thirdparty/onnx/CMakeLists.txt index f0d2889c7862ad..8c1327ac737a7b 100644 --- a/thirdparty/onnx/CMakeLists.txt +++ b/thirdparty/onnx/CMakeLists.txt @@ -44,21 +44,13 @@ foreach(_onnx_target onnx onnx_proto) $) endforeach() -if(WIN32) - # from onnx==1.13.1 it requires C++17 when compiling on Windows - target_compile_features(onnx PRIVATE cxx_std_17) +if(MINGW) # OPTIONAL is a reserved word for mingw at least - if(MINGW) - target_compile_definitions(onnx PRIVATE OPTIONAL=OPTIONAL_PLACEHOLDER) - endif() + target_compile_definitions(onnx PRIVATE OPTIONAL=OPTIONAL_PLACEHOLDER) endif() -# WA to support old compiler version, removes unused header which may block build -if(CMAKE_COMPILER_IS_GNUCXX AND LINUX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0) - file(READ onnx/onnx/defs/parser.cc CONTENT) - string(REPLACE "#include " "" CONTENT "${CONTENT}") - file(WRITE onnx/onnx/defs/parser.cc "${CONTENT}") -endif() +# from onnx==1.13.1 it requires C++17 when compiling on Windows, and since onnx==1.16.0 on Linux +target_compile_features(onnx PRIVATE cxx_std_17) ov_disable_all_warnings(onnx onnx_proto) diff --git a/tools/constraints.txt b/tools/constraints.txt index e91d858e4eabcc..9ae444583944dd 100644 --- a/tools/constraints.txt +++ b/tools/constraints.txt @@ -4,7 +4,7 @@ # tensorflow, numpy mxnet~=1.2.0; sys_platform == 'win32' mxnet>=1.7.0.post2,<=1.9.1; sys_platform != 'win32' -onnx>=1.8.1,<=1.15.0 +onnx>=1.8.1,<=1.16.0 networkx<=3.1.0 pytest>=5.0,<7.3 protobuf>=3.18.1,<4.0.0 diff --git a/vcpkg.json b/vcpkg.json index 66a4c34816ad46..4953a66348f3b3 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -141,4 +141,4 @@ ] } } -} \ No newline at end of file +} From 939bdf444acdd765093aea746030f97417da6050 Mon Sep 17 00:00:00 2001 From: Anastasia Kuporosova Date: Fri, 8 Nov 2024 10:22:24 +0000 Subject: [PATCH 2/7] remove conflicts markers --- src/frontends/onnx/tests/tests_python/test_backend.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/frontends/onnx/tests/tests_python/test_backend.py b/src/frontends/onnx/tests/tests_python/test_backend.py index 4c6c2659c893a6..4d09af948bd51f 100644 --- a/src/frontends/onnx/tests/tests_python/test_backend.py +++ b/src/frontends/onnx/tests/tests_python/test_backend.py @@ -90,6 +90,7 @@ xfail_issue_139936, xfail_issue_139937, xfail_issue_139938, + xfail_issue_139938, ) from tests.tests_python.utils.onnx_backend import OpenVinoTestBackend @@ -798,8 +799,6 @@ def expect_fail(test_case_path, xfail): # type: (str) -> None "OnnxBackendNodeModelTest.test_quantizelinear_blocked_asymmetric_cpu", "OnnxBackendNodeModelTest.test_quantizelinear_blocked_symmetric_cpu", ), -<<<<<<< HEAD -======= ( skip_issue_124587, "OnnxBackendNodeModelTest.test_split_variable_parts_1d_opset18_cpu", @@ -838,7 +837,6 @@ def expect_fail(test_case_path, xfail): # type: (str) -> None "OnnxBackendNodeModelTest.test_qlinearmatmul_2D_int8_float32_cpu", "OnnxBackendNodeModelTest.test_qlinearmatmul_2D_uint8_float16_cpu", ), ->>>>>>> 12a5e5a505... [ONNX] Switched to ONNX 1.16.0 (#24242) ] if platform.system() == 'Darwin': From 816b63ca3c98fea6038c07bab2dcb7e90302a911 Mon Sep 17 00:00:00 2001 From: Anastasia Kuporosova Date: Fri, 8 Nov 2024 10:47:41 +0000 Subject: [PATCH 3/7] checkout onnx --- thirdparty/onnx/onnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/thirdparty/onnx/onnx b/thirdparty/onnx/onnx index b86cc54efce195..990217f043af72 160000 --- a/thirdparty/onnx/onnx +++ b/thirdparty/onnx/onnx @@ -1 +1 @@ -Subproject commit b86cc54efce19530fb953e4b21f57e6b3888534c +Subproject commit 990217f043af7222348ca8f0301e17fa7b841781 From 89e932f884b3d763516789db942c9660342d2009 Mon Sep 17 00:00:00 2001 From: Anastasia Kuporosova Date: Fri, 8 Nov 2024 10:58:30 +0000 Subject: [PATCH 4/7] fix lint --- src/bindings/python/requirements_test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bindings/python/requirements_test.txt b/src/bindings/python/requirements_test.txt index d0f7023d6270b5..fd08cc8401698d 100644 --- a/src/bindings/python/requirements_test.txt +++ b/src/bindings/python/requirements_test.txt @@ -36,7 +36,7 @@ py radon retrying tox -types-pkg_resources +types-setuptools wheel singledispatchmethod torch From 2456816e6aa47c000b91485aa3361dbfc0ab16e1 Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Mon, 5 Aug 2024 14:08:22 +0400 Subject: [PATCH 5/7] Fixed compatibility with new version of 'wheel' (#25899) ### Details: - *item1* - *...* ### Tickets: - *ticket-id* --- src/bindings/python/wheel/CMakeLists.txt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/bindings/python/wheel/CMakeLists.txt b/src/bindings/python/wheel/CMakeLists.txt index 191557c488edda..d8c6a0cf78b527 100644 --- a/src/bindings/python/wheel/CMakeLists.txt +++ b/src/bindings/python/wheel/CMakeLists.txt @@ -8,10 +8,21 @@ execute_process(COMMAND ${Python3_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{tags.interpreter_name()}{tags.interpreter_version()}')" OUTPUT_VARIABLE PYTHON_TAG OUTPUT_STRIP_TRAILING_WHITESPACE) -execute_process(COMMAND ${Python3_EXECUTABLE} -c "import wheel.bdist_wheel ; print(f'{wheel.bdist_wheel.get_abi_tag()}')" +if(NOT PYTHON_TAG) + message(FATAL_ERROR "Failed to detect Python Tag via wheel.vendored.packaging.tags. Please, check 'wheel' dependency version update") +endif() + +execute_process(COMMAND ${Python3_EXECUTABLE} -c "from setuptools.command.bdist_wheel import get_abi_tag; print(f'{get_abi_tag()}')" OUTPUT_VARIABLE ABI_TAG OUTPUT_STRIP_TRAILING_WHITESPACE) +if(NOT ABI_TAG) + message(FATAL_ERROR "Failed to detect ABI Tag via setuptools.command.bdist_wheel. Please, check 'setuptools' dependency version update") +endif() + execute_process(COMMAND ${Python3_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{next(tags.platform_tags())}')" OUTPUT_VARIABLE PLATFORM_TAG OUTPUT_STRIP_TRAILING_WHITESPACE) +if(NOT PLATFORM_TAG) + message(FATAL_ERROR "Failed to detect Platform Tag via wheel.vendored.packaging.tags. Please, check 'wheel' dependency version update") +endif() # defines wheel architecture part of `PLATFORM_TAG` macro(_ov_platform_arch) From 8ec1ba70b19610def1be41c69740288358529bd9 Mon Sep 17 00:00:00 2001 From: Anastasia Kuporosova Date: Wed, 13 Nov 2024 12:20:08 +0000 Subject: [PATCH 6/7] wa for debian9 --- thirdparty/onnx/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/thirdparty/onnx/CMakeLists.txt b/thirdparty/onnx/CMakeLists.txt index 8c1327ac737a7b..aae8e13b9c6c14 100644 --- a/thirdparty/onnx/CMakeLists.txt +++ b/thirdparty/onnx/CMakeLists.txt @@ -52,6 +52,21 @@ endif() # from onnx==1.13.1 it requires C++17 when compiling on Windows, and since onnx==1.16.0 on Linux target_compile_features(onnx PRIVATE cxx_std_17) +# WA to allow build on Debian 9 +if(CMAKE_COMPILER_IS_GNUCXX AND LINUX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0) + file(READ onnx/onnx/common/file_utils.h CONTENT) + string(REPLACE "#include " "" CONTENT "${CONTENT}") + string(REPLACE "std::filesystem::path proto_u8_path = std::filesystem::u8path(proto_path);" "" CONTENT "${CONTENT}") + string(REPLACE "proto_u8_path" "proto_path" CONTENT "${CONTENT}") + file(WRITE onnx/onnx/common/file_utils.h "${CONTENT}") + + file(READ onnx/onnx/defs/traditionalml/utils.h CONTENT) + string(REPLACE "const auto& [type, length]" "const std::pair& type_length" CONTENT "${CONTENT}") + string(REPLACE "type !=" "type_length.first !=" CONTENT "${CONTENT}") + string(REPLACE "length !=" "type_length.second !=" CONTENT "${CONTENT}") + file(WRITE onnx/onnx/defs/traditionalml/utils.h "${CONTENT}") +endif() + ov_disable_all_warnings(onnx onnx_proto) # install From fbca6a90d850185aebd9db06d03c7aaa38a54401 Mon Sep 17 00:00:00 2001 From: Anastasia Kuporosova Date: Wed, 13 Nov 2024 12:58:07 +0000 Subject: [PATCH 7/7] remove unnecessary --- src/frontends/onnx/tests/tests_python/test_backend.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/frontends/onnx/tests/tests_python/test_backend.py b/src/frontends/onnx/tests/tests_python/test_backend.py index 4d09af948bd51f..6ef6c9697ac2e4 100644 --- a/src/frontends/onnx/tests/tests_python/test_backend.py +++ b/src/frontends/onnx/tests/tests_python/test_backend.py @@ -85,7 +85,6 @@ xfail_issue_122775, xfail_issue_122776, skip_misalignment, - skip_issue_124587, xfail_issue_139934, xfail_issue_139936, xfail_issue_139937, @@ -799,13 +798,6 @@ def expect_fail(test_case_path, xfail): # type: (str) -> None "OnnxBackendNodeModelTest.test_quantizelinear_blocked_asymmetric_cpu", "OnnxBackendNodeModelTest.test_quantizelinear_blocked_symmetric_cpu", ), - ( - skip_issue_124587, - "OnnxBackendNodeModelTest.test_split_variable_parts_1d_opset18_cpu", - "OnnxBackendNodeModelTest.test_split_variable_parts_2d_opset18_cpu", - "OnnxBackendNodeModelTest.test_split_variable_parts_default_axis_opset13_cpu", - "OnnxBackendNodeModelTest.test_split_variable_parts_default_axis_opset18_cpu", - ), ( xfail_issue_139934, "OnnxBackendNodeModelTest.test_cast_FLOAT16_to_INT4_cpu",