From 0bb58bf89a4198b188299d20e346d2affb1b64ae Mon Sep 17 00:00:00 2001 From: Vaibhav Awale Date: Sun, 3 Aug 2025 15:28:48 +0200 Subject: [PATCH 01/24] Use py::array::request().itemsize instead of py::array::itemsize() `py::array::itemsize()` returns 0 for tests in `model_test.py`. I could not really figure out why from pybind11 docs. Using `request().itemsize` on the other hand always returns the correct item size. --- apps/onnx/model.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/onnx/model.cpp b/apps/onnx/model.cpp index 147841f60608..6486ac131cef 100644 --- a/apps/onnx/model.cpp +++ b/apps/onnx/model.cpp @@ -126,7 +126,7 @@ void prepare_py_array_input( input_shape.push_back(ndarray.shape(i)); } // Make sure the input is contiguous. - int stride = ndarray.itemsize(); + int stride = ndarray.request().itemsize; for (int i = rank - 1; i >= 0; --i) { if (stride != ndarray.strides(i)) { throw std::invalid_argument( From 531314f9a8bda164109e108ba625f062b991ad7d Mon Sep 17 00:00:00 2001 From: Vaibhav Awale Date: Sun, 3 Aug 2025 15:34:55 +0200 Subject: [PATCH 02/24] Add CMake build for onnx app Adds CMakeLists.txt file for cmake build of onnx app. The build logic is kept same as the one from corresponding Makefile. --- apps/CMakeLists.txt | 2 +- apps/onnx/CMakeLists.txt | 131 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 apps/onnx/CMakeLists.txt diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index e5954e4046ac..6ffd7966a991 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -57,7 +57,7 @@ add_app(local_laplacian) add_app(max_filter) add_app(nl_means) # add_app(nn_ops) # TODO(#5374): missing CMake build -# add_app(onnx) # TODO(#5374): missing CMake build +add_app(onnx) add_app(resize) # add_app(resnet_50) # TODO(#5374): missing CMake build # add_app(simd_op_check) # TODO(#5374): missing CMake build diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt new file mode 100644 index 000000000000..f37bfea944d7 --- /dev/null +++ b/apps/onnx/CMakeLists.txt @@ -0,0 +1,131 @@ +cmake_minimum_required(VERSION 3.28) +project(onnx) + +enable_testing() + +# Set up language settings +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED YES) +set(CMAKE_CXX_EXTENSIONS NO) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +find_package(Protobuf) +if (NOT Protobuf_FOUND) + message(WARNING "Could NOT find Protobuf") + return() +endif() + +find_package(Halide REQUIRED) + +# Download onnx.proto +set(ONNX_PROTO_FILE ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto) +if (NOT EXISTS ${ONNX_PROTO_FILE}) + file(DOWNLOAD + "https://raw.githubusercontent.com/onnx/onnx/v1.4.1/onnx/onnx.proto" + ${ONNX_PROTO_FILE} + SHOW_PROGRESS + STATUS download_status) + if (NOT download_status EQUAL 0) + message(FATAL_ERROR "Failed to download onnx.proto: ${download_status}") + endif () + + file(READ ${ONNX_PROTO_FILE} onnx_proto_content) + string(REPLACE "package onnx;" "package onnx;option optimize_for = LITE_RUNTIME;" onnx_proto_content "${onnx_proto_content}") + file(WRITE ${ONNX_PROTO_FILE} "${onnx_proto_content}") +endif () + +# Generate sources from onnx.proto +add_custom_target(onnx_proto) +protobuf_generate(TARGET onnx_proto + LANGUAGE cpp + PROTOC_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/onnx + PROTOC_OUT_VAR onnx_proto_generated_sources + PROTOS ${ONNX_PROTO_FILE} + IMPORT_DIRS ${CMAKE_CURRENT_BINARY_DIR}) + +# Add library that converts ONNX models to Halide operators +add_library(oclib STATIC onnx_converter.cc ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx.pb.cc) +target_include_directories(oclib + PUBLIC + ${CMAKE_CURRENT_BINARY_DIR} + ${Protobuf_INCLUDE_DIRS}) +target_link_libraries(oclib PUBLIC Halide::Halide ${Protobuf_LITE_LIBRARIES}) +target_compile_definitions(oclib PUBLIC GOOGLE_PROTOBUF_NO_RTTI) + +add_executable(onnx_converter_test onnx_converter_test.cc) +target_link_libraries(onnx_converter_test oclib) +add_test(NAME onnx_converter_test COMMAND onnx_converter_test) +set_tests_properties(onnx_converter_test PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "Success!" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]") + +# Generator +add_halide_generator(onnx_converter.generator SOURCES onnx_converter_generator.cc LINK_LIBRARIES oclib) + +# Generate test onnx model +add_custom_command( + OUTPUT test_model.onnx + COMMAND + ${CMAKE_COMMAND} -E cat ${CMAKE_CURRENT_SOURCE_DIR}/test_model_proto.txt | protoc --encode=onnx.ModelProto --proto_path=${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto > test_model.onnx + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto + COMMENT "Generating test ONNX model from proto content" + MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/test_model_proto.txt + VERBATIM +) +add_custom_target(test_model_onnx DEPENDS test_model.onnx) +add_dependencies(test_model_onnx onnx_proto) + +# Generate static library using halide generator for test onnx model +add_halide_library(test_model FROM onnx_converter.generator + GENERATOR onnx_model_generator + PARAMS model_file_path=${CMAKE_CURRENT_BINARY_DIR}/test_model.onnx + AUTOSCHEDULER Halide::Adams2019) +add_dependencies(test_model test_model_onnx) + +# Test the generated static library +add_executable(onnx_converter_generator_test onnx_converter_generator_test.cc) +target_link_libraries(onnx_converter_generator_test PRIVATE Halide::Runtime test_model) +add_test(NAME onnx_converter_generator_test COMMAND onnx_converter_generator_test) +set_tests_properties(onnx_converter_generator_test PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "Success!" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]") + +# Python bindings to convert onnx models to Halide model +find_package(Python3 COMPONENTS Interpreter Development) +if (NOT Python3_FOUND) + message(WARNING "Could NOT find Python3") + return() +endif() +find_package(pybind11) +if (NOT pybind11_FOUND) + message(WARNING "Could NOT find pybind11") + return() +endif() +pybind11_add_module(model_cpp model.cpp) +target_link_libraries(model_cpp PRIVATE Halide::Halide oclib) +if (UNIX) + target_link_libraries(model_cpp PRIVATE -Wl,--no-as-needed Halide::Adams2019 -Wl,--as-needed) +endif() +if (WIN32) + target_link_libraries(model_cpp PRIVATE Halide::Adams2019) +endif() + +add_test(NAME model_test + COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/model_test.py -v + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +set_tests_properties(model_test PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "OK" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" + ENVIRONMENT "PYTHONPATH=$") + +add_test(NAME halide_as_onnx_backend_test + COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/halide_as_onnx_backend_test.py -v + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +set_tests_properties(halide_as_onnx_backend_test PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "OK" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" + ENVIRONMENT "PYTHONPATH=$") From 4207cbd7dc4b60b47ea96ac4349d503b113cbc1b Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Tue, 5 Aug 2025 07:53:18 -0400 Subject: [PATCH 03/24] Format apps/onnx/CMakeLists.txt --- apps/onnx/CMakeLists.txt | 113 +++++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 41 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index f37bfea944d7..0c9e453111f1 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -13,18 +13,20 @@ find_package(Protobuf) if (NOT Protobuf_FOUND) message(WARNING "Could NOT find Protobuf") return() -endif() +endif () find_package(Halide REQUIRED) # Download onnx.proto set(ONNX_PROTO_FILE ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto) if (NOT EXISTS ${ONNX_PROTO_FILE}) - file(DOWNLOAD + file( + DOWNLOAD "https://raw.githubusercontent.com/onnx/onnx/v1.4.1/onnx/onnx.proto" ${ONNX_PROTO_FILE} SHOW_PROGRESS - STATUS download_status) + STATUS download_status + ) if (NOT download_status EQUAL 0) message(FATAL_ERROR "Failed to download onnx.proto: ${download_status}") endif () @@ -36,38 +38,51 @@ endif () # Generate sources from onnx.proto add_custom_target(onnx_proto) -protobuf_generate(TARGET onnx_proto +protobuf_generate( + TARGET onnx_proto LANGUAGE cpp PROTOC_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/onnx PROTOC_OUT_VAR onnx_proto_generated_sources PROTOS ${ONNX_PROTO_FILE} - IMPORT_DIRS ${CMAKE_CURRENT_BINARY_DIR}) + IMPORT_DIRS ${CMAKE_CURRENT_BINARY_DIR} +) # Add library that converts ONNX models to Halide operators add_library(oclib STATIC onnx_converter.cc ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx.pb.cc) -target_include_directories(oclib +target_include_directories( + oclib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} - ${Protobuf_INCLUDE_DIRS}) + ${Protobuf_INCLUDE_DIRS} +) target_link_libraries(oclib PUBLIC Halide::Halide ${Protobuf_LITE_LIBRARIES}) target_compile_definitions(oclib PUBLIC GOOGLE_PROTOBUF_NO_RTTI) add_executable(onnx_converter_test onnx_converter_test.cc) target_link_libraries(onnx_converter_test oclib) + add_test(NAME onnx_converter_test COMMAND onnx_converter_test) -set_tests_properties(onnx_converter_test PROPERTIES - LABELS onnx - PASS_REGULAR_EXPRESSION "Success!" - SKIP_REGULAR_EXPRESSION "\\[SKIP\\]") +set_tests_properties( + onnx_converter_test PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "Success!" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" +) # Generator -add_halide_generator(onnx_converter.generator SOURCES onnx_converter_generator.cc LINK_LIBRARIES oclib) +add_halide_generator( + onnx_converter.generator + SOURCES onnx_converter_generator.cc + LINK_LIBRARIES oclib +) # Generate test onnx model add_custom_command( OUTPUT test_model.onnx COMMAND - ${CMAKE_COMMAND} -E cat ${CMAKE_CURRENT_SOURCE_DIR}/test_model_proto.txt | protoc --encode=onnx.ModelProto --proto_path=${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto > test_model.onnx + ${CMAKE_COMMAND} -E cat ${CMAKE_CURRENT_SOURCE_DIR}/test_model_proto.txt + | protoc --encode=onnx.ModelProto --proto_path=${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto + > test_model.onnx DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto COMMENT "Generating test ONNX model from proto content" MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/test_model_proto.txt @@ -77,55 +92,71 @@ add_custom_target(test_model_onnx DEPENDS test_model.onnx) add_dependencies(test_model_onnx onnx_proto) # Generate static library using halide generator for test onnx model -add_halide_library(test_model FROM onnx_converter.generator - GENERATOR onnx_model_generator - PARAMS model_file_path=${CMAKE_CURRENT_BINARY_DIR}/test_model.onnx - AUTOSCHEDULER Halide::Adams2019) +add_halide_library( + test_model FROM onnx_converter.generator + GENERATOR onnx_model_generator + PARAMS model_file_path=${CMAKE_CURRENT_BINARY_DIR}/test_model.onnx + AUTOSCHEDULER Halide::Adams2019 +) add_dependencies(test_model test_model_onnx) # Test the generated static library add_executable(onnx_converter_generator_test onnx_converter_generator_test.cc) target_link_libraries(onnx_converter_generator_test PRIVATE Halide::Runtime test_model) + add_test(NAME onnx_converter_generator_test COMMAND onnx_converter_generator_test) -set_tests_properties(onnx_converter_generator_test PROPERTIES - LABELS onnx - PASS_REGULAR_EXPRESSION "Success!" - SKIP_REGULAR_EXPRESSION "\\[SKIP\\]") +set_tests_properties( + onnx_converter_generator_test + PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "Success!" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" +) # Python bindings to convert onnx models to Halide model find_package(Python3 COMPONENTS Interpreter Development) if (NOT Python3_FOUND) message(WARNING "Could NOT find Python3") return() -endif() +endif () + find_package(pybind11) if (NOT pybind11_FOUND) message(WARNING "Could NOT find pybind11") return() -endif() +endif () + pybind11_add_module(model_cpp model.cpp) target_link_libraries(model_cpp PRIVATE Halide::Halide oclib) if (UNIX) target_link_libraries(model_cpp PRIVATE -Wl,--no-as-needed Halide::Adams2019 -Wl,--as-needed) -endif() +endif () if (WIN32) target_link_libraries(model_cpp PRIVATE Halide::Adams2019) -endif() +endif () -add_test(NAME model_test +add_test( + NAME model_test COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/model_test.py -v - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) -set_tests_properties(model_test PROPERTIES - LABELS onnx - PASS_REGULAR_EXPRESSION "OK" - SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" - ENVIRONMENT "PYTHONPATH=$") - -add_test(NAME halide_as_onnx_backend_test - COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/halide_as_onnx_backend_test.py -v - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) -set_tests_properties(halide_as_onnx_backend_test PROPERTIES - LABELS onnx - PASS_REGULAR_EXPRESSION "OK" - SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" - ENVIRONMENT "PYTHONPATH=$") + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) +set_tests_properties( + model_test PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "OK" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" + ENVIRONMENT "PYTHONPATH=$" +) + +add_test( + NAME halide_as_onnx_backend_test + COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/halide_as_onnx_backend_test.py -v + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) +set_tests_properties( + halide_as_onnx_backend_test PROPERTIES + LABELS onnx + PASS_REGULAR_EXPRESSION "OK" + SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" + ENVIRONMENT "PYTHONPATH=$" +) From 687009e26598e51dd4d42d3d4cdb80f26e837cc7 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 09:31:21 -0400 Subject: [PATCH 04/24] Fix unused struct member issue --- apps/onnx/denormal_disabler.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/onnx/denormal_disabler.h b/apps/onnx/denormal_disabler.h index 642a912c4222..bb6b1516c324 100644 --- a/apps/onnx/denormal_disabler.h +++ b/apps/onnx/denormal_disabler.h @@ -35,8 +35,8 @@ class DenormalDisabler { } private: - unsigned int csr_ = 0; - bool need_restore_ = false; + [[maybe_unused]] unsigned int csr_ = 0; + [[maybe_unused]] bool need_restore_ = false; // Interpret denormal as zero (DAZ) bit static constexpr unsigned int DAZ = 0x0040; // Flush denormal to zero (FTZ) bit From fd3abb5b530b7e33c036e8c2f08e36326db9b899 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 09:34:36 -0400 Subject: [PATCH 05/24] Pass Adams2019 via MODEL_AUTOSCHEDULER env-var --- apps/onnx/CMakeLists.txt | 10 ++-------- apps/onnx/model.cpp | 5 +++++ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 0c9e453111f1..ed1f1ead182c 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -128,12 +128,6 @@ endif () pybind11_add_module(model_cpp model.cpp) target_link_libraries(model_cpp PRIVATE Halide::Halide oclib) -if (UNIX) - target_link_libraries(model_cpp PRIVATE -Wl,--no-as-needed Halide::Adams2019 -Wl,--as-needed) -endif () -if (WIN32) - target_link_libraries(model_cpp PRIVATE Halide::Adams2019) -endif () add_test( NAME model_test @@ -145,7 +139,7 @@ set_tests_properties( LABELS onnx PASS_REGULAR_EXPRESSION "OK" SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" - ENVIRONMENT "PYTHONPATH=$" + ENVIRONMENT "PYTHONPATH=$;MODEL_AUTOSCHEDULER=$" ) add_test( @@ -158,5 +152,5 @@ set_tests_properties( LABELS onnx PASS_REGULAR_EXPRESSION "OK" SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" - ENVIRONMENT "PYTHONPATH=$" + ENVIRONMENT "PYTHONPATH=$;MODEL_AUTOSCHEDULER=$" ) diff --git a/apps/onnx/model.cpp b/apps/onnx/model.cpp index 6486ac131cef..1e9c7770d301 100644 --- a/apps/onnx/model.cpp +++ b/apps/onnx/model.cpp @@ -543,6 +543,11 @@ void print_lowered_statement(const HalideModel &pipeline) { } // namespace PYBIND11_MODULE(model_cpp, m) { + if (const auto autoscheduler = Halide::Internal::get_env_variable("MODEL_AUTOSCHEDULER"); + !autoscheduler.empty()) { + Halide::load_plugin(autoscheduler); + } + py::class_(m, "HalideModel"); py::enum_(m, "Layout") From 98cf3c887eeff72d9799604bb94e3251b63178aa Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 09:35:37 -0400 Subject: [PATCH 06/24] Add pytest to dependencies, which was missing from onnx --- pyproject.toml | 3 ++- requirements.txt | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0e22123f1dfb..b065d2f4b16d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,8 @@ dev = [ "setuptools-scm>=8.3.1", ] apps = [ - "onnx" + "onnx", + "pytest", # unspecified onnx dependency ] tools = [ "cmake>=3.28", diff --git a/requirements.txt b/requirements.txt index 85e9c1e16130..3d1c65828d23 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,15 +4,21 @@ cli-ui==0.19.0 # via tbump cmake==4.0.3 colorama==0.4.6 - # via cli-ui + # via + # cli-ui + # pytest docopt==0.6.2 # via tbump exceptiongroup==1.3.0 ; python_full_version < '3.11' - # via scikit-build-core + # via + # pytest + # scikit-build-core imageio==2.37.0 # via halide importlib-metadata==8.7.0 ; python_full_version < '3.10' # via setuptools-scm +iniconfig==2.1.0 + # via pytest ninja==1.11.1.4 numpy==2.0.2 ; python_full_version < '3.10' # via @@ -32,16 +38,22 @@ numpy==2.3.2 ; python_full_version >= '3.11' onnx==1.18.0 packaging==25.0 # via + # pytest # scikit-build-core # setuptools-scm pathspec==0.12.1 # via scikit-build-core pillow==11.3.0 # via imageio +pluggy==1.6.0 + # via pytest protobuf==6.31.1 # via onnx pybind11==3.0.0 -ruff==0.12.7 +pygments==2.19.2 + # via pytest +pytest==8.4.1 +ruff==0.12.8 schema==0.7.7 # via tbump scikit-build-core==0.11.5 @@ -53,6 +65,7 @@ tabulate==0.9.0 tbump==6.11.0 tomli==2.2.1 ; python_full_version < '3.11' # via + # pytest # scikit-build-core # setuptools-scm tomlkit==0.11.8 From d9847dc24d8be3ff410875babb611c48faee0e40 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 09:35:55 -0400 Subject: [PATCH 07/24] halide_as_onnx_backend_test seems to run forever --- apps/onnx/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index ed1f1ead182c..b3d44ac3c1b9 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -153,4 +153,5 @@ set_tests_properties( PASS_REGULAR_EXPRESSION "OK" SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" ENVIRONMENT "PYTHONPATH=$;MODEL_AUTOSCHEDULER=$" + TIMEOUT 120 ) From de4e6d9f57ba8150927f8972f743b1127779321b Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 09:41:55 -0400 Subject: [PATCH 08/24] Replace raw download with FetchContent --- apps/onnx/CMakeLists.txt | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index b3d44ac3c1b9..a10f60c61583 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -18,23 +18,16 @@ endif () find_package(Halide REQUIRED) # Download onnx.proto -set(ONNX_PROTO_FILE ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto) -if (NOT EXISTS ${ONNX_PROTO_FILE}) - file( - DOWNLOAD - "https://raw.githubusercontent.com/onnx/onnx/v1.4.1/onnx/onnx.proto" - ${ONNX_PROTO_FILE} - SHOW_PROGRESS - STATUS download_status - ) - if (NOT download_status EQUAL 0) - message(FATAL_ERROR "Failed to download onnx.proto: ${download_status}") - endif () - - file(READ ${ONNX_PROTO_FILE} onnx_proto_content) - string(REPLACE "package onnx;" "package onnx;option optimize_for = LITE_RUNTIME;" onnx_proto_content "${onnx_proto_content}") - file(WRITE ${ONNX_PROTO_FILE} "${onnx_proto_content}") -endif () +include(FetchContent) +FetchContent_Declare( + onnx + GIT_REPOSITORY https://github.com/onnx/onnx.git + GIT_TAG c11b6a715daeb48b056e4c9bed3dfc0dcb243d12 # v1.4.1 + GIT_SHALLOW TRUE + SOURCE_SUBDIR do-not-load/ +) +FetchContent_MakeAvailable(onnx) +set(ONNX_PROTO_FILE ${onnx_SOURCE_DIR}/onnx/onnx.proto) # Generate sources from onnx.proto add_custom_target(onnx_proto) From a7710887cce6298dec1742241423f0dd8b72b887 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 09:42:33 -0400 Subject: [PATCH 09/24] Add PRIVATE to target_link_libraries --- apps/onnx/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index a10f60c61583..796fea6d3f58 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -52,7 +52,7 @@ target_link_libraries(oclib PUBLIC Halide::Halide ${Protobuf_LITE_LIBRARIES}) target_compile_definitions(oclib PUBLIC GOOGLE_PROTOBUF_NO_RTTI) add_executable(onnx_converter_test onnx_converter_test.cc) -target_link_libraries(onnx_converter_test oclib) +target_link_libraries(onnx_converter_test PRIVATE oclib) add_test(NAME onnx_converter_test COMMAND onnx_converter_test) set_tests_properties( From 83fb3c2d6815c653fe672238c66b7a564cffc02d Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:12:56 -0400 Subject: [PATCH 10/24] Lock onnx to 1.4.1 --- pyproject.toml | 2 +- requirements.txt | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b065d2f4b16d..d5fd2edf9656 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ dev = [ "setuptools-scm>=8.3.1", ] apps = [ - "onnx", + "onnx==1.4.1", "pytest", # unspecified onnx dependency ] tools = [ diff --git a/requirements.txt b/requirements.txt index 3d1c65828d23..2cb7e3de1de7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,7 +35,7 @@ numpy==2.3.2 ; python_full_version >= '3.11' # halide # imageio # onnx -onnx==1.18.0 +onnx==1.4.1 packaging==25.0 # via # pytest @@ -60,6 +60,8 @@ scikit-build-core==0.11.5 setuptools==80.9.0 # via setuptools-scm setuptools-scm==8.3.1 +six==1.17.0 + # via onnx tabulate==0.9.0 # via cli-ui tbump==6.11.0 @@ -70,6 +72,8 @@ tomli==2.2.1 ; python_full_version < '3.11' # setuptools-scm tomlkit==0.11.8 # via tbump +typing==3.10.0.0 + # via onnx typing-extensions==4.14.1 # via # exceptiongroup From b09085457af0b295e376703e2309150a27521963 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:25:06 -0400 Subject: [PATCH 11/24] Add DEPENDS argument to add_halide_library --- cmake/HalideGeneratorHelpers.cmake | 4 ++-- doc/HalideCMakePackage.md | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cmake/HalideGeneratorHelpers.cmake b/cmake/HalideGeneratorHelpers.cmake index 34f7fb644078..324f44a31985 100644 --- a/cmake/HalideGeneratorHelpers.cmake +++ b/cmake/HalideGeneratorHelpers.cmake @@ -486,7 +486,7 @@ function(add_halide_library TARGET) set(options C_BACKEND GRADIENT_DESCENT) set(oneValueArgs FROM GENERATOR FUNCTION_NAME NAMESPACE USE_RUNTIME AUTOSCHEDULER HEADER ${extra_output_names} NO_THREADS NO_DL_LIBS) - set(multiValueArgs TARGETS PARAMS PLUGINS ${features_args}) + set(multiValueArgs DEPENDS TARGETS PARAMS PLUGINS ${features_args}) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if (NOT "${ARG_UNPARSED_ARGUMENTS}" STREQUAL "") @@ -632,7 +632,7 @@ function(add_halide_library TARGET) set(generator_args COMMAND ${generator_cmd} - DEPENDS ${generator_cmd_deps} + DEPENDS ${generator_cmd_deps} ${ARG_DEPENDS} EXTRA_OUTPUTS ${extra_outputs} FUNCTION_NAME "${ARG_FUNCTION_NAME}" GENERATOR "${ARG_GENERATOR}" diff --git a/doc/HalideCMakePackage.md b/doc/HalideCMakePackage.md index ed0a073ab400..60bd49aa383b 100644 --- a/doc/HalideCMakePackage.md +++ b/doc/HalideCMakePackage.md @@ -392,6 +392,7 @@ add_halide_library( FROM [NAMESPACE cpp-namespace] [USE_RUNTIME hl-target] [PARAMS param1 [param2 ...]] + [DEPENDS [dep1 dep2 ...]] [TARGETS target1 [target2 ...]] [FEATURES feature1 [feature2 ...]] [FEATURES[] feature1 [feature2 ...]] @@ -463,6 +464,12 @@ When `CMAKE_OSX_ARCHITECTURES` is set and the `TARGETS` argument resolves to `cmake`, the generator will be run once for each architecture and the results will be fused together using `lipo`. This behavior extends to runtime targets. +Sometimes, the generation will need to read files that were generated during the +build. To declare dependencies on these files, use the `DEPENDS` argument. Paths +listed here will be passed verbatim to `add_custom_command`, and so will be +relative to the source directory. Use absolute paths when referring to files +outside the source directory. + To use an autoscheduler, set the `AUTOSCHEDULER` argument to a target named like `Namespace::Scheduler`, for example `Halide::Adams2019`. This will set the `autoscheduler` GeneratorParam on the generator command line to `Scheduler` @@ -532,8 +539,8 @@ will be added to the extension as a callable method of the module. Note that every library specified must be built with the `PYTHON_EXTENSION` keyword specified, and all libraries must use the same Halide runtime. -The result will be a shared library of the form `..so`, where -`` describes the specific Python version and platform (e.g., +The result will be a shared library of the form `..so`, where +`` describes the specific Python version and platform (e.g., `cpython-310-darwin` for Python 3.10 on macOS.) ### `add_halide_runtime` From 808e8e1187dda9c59971eb2e00251d476e742b69 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:29:12 -0400 Subject: [PATCH 12/24] Skip GIT_SHALLOW --- apps/onnx/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 796fea6d3f58..6444f2cd6c4e 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -23,7 +23,6 @@ FetchContent_Declare( onnx GIT_REPOSITORY https://github.com/onnx/onnx.git GIT_TAG c11b6a715daeb48b056e4c9bed3dfc0dcb243d12 # v1.4.1 - GIT_SHALLOW TRUE SOURCE_SUBDIR do-not-load/ ) FetchContent_MakeAvailable(onnx) From b9ff026437473e17bd8ebed0479f1e0e065e8582 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:29:35 -0400 Subject: [PATCH 13/24] Formatting... --- apps/onnx/CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 6444f2cd6c4e..5f9686691009 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -53,7 +53,8 @@ target_compile_definitions(oclib PUBLIC GOOGLE_PROTOBUF_NO_RTTI) add_executable(onnx_converter_test onnx_converter_test.cc) target_link_libraries(onnx_converter_test PRIVATE oclib) -add_test(NAME onnx_converter_test COMMAND onnx_converter_test) +add_test(NAME onnx_converter_test + COMMAND onnx_converter_test) set_tests_properties( onnx_converter_test PROPERTIES LABELS onnx @@ -96,7 +97,8 @@ add_dependencies(test_model test_model_onnx) add_executable(onnx_converter_generator_test onnx_converter_generator_test.cc) target_link_libraries(onnx_converter_generator_test PRIVATE Halide::Runtime test_model) -add_test(NAME onnx_converter_generator_test COMMAND onnx_converter_generator_test) +add_test(NAME onnx_converter_generator_test + COMMAND onnx_converter_generator_test) set_tests_properties( onnx_converter_generator_test PROPERTIES From 2425cdfd49e46ea5648a1fe8bb554c896c43c03f Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:30:12 -0400 Subject: [PATCH 14/24] Add header sources to model_cpp --- apps/onnx/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 5f9686691009..d49ea6b7f089 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -122,6 +122,9 @@ endif () pybind11_add_module(model_cpp model.cpp) target_link_libraries(model_cpp PRIVATE Halide::Halide oclib) +pybind11_add_module( + model_cpp model.cpp benchmarking_utils.h common_types.h denormal_disabler.h +) add_test( NAME model_test From a39ed23cc9b65d8e885d6cb464d5981ec68f18f0 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:30:31 -0400 Subject: [PATCH 15/24] Merge set_tests_properties calls --- apps/onnx/CMakeLists.txt | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index d49ea6b7f089..bb30897a402c 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -120,32 +120,25 @@ if (NOT pybind11_FOUND) return() endif () -pybind11_add_module(model_cpp model.cpp) -target_link_libraries(model_cpp PRIVATE Halide::Halide oclib) pybind11_add_module( model_cpp model.cpp benchmarking_utils.h common_types.h denormal_disabler.h ) +target_link_libraries(model_cpp PRIVATE Halide::Halide onnx::oclib) add_test( NAME model_test COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/model_test.py -v WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) -set_tests_properties( - model_test PROPERTIES - LABELS onnx - PASS_REGULAR_EXPRESSION "OK" - SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" - ENVIRONMENT "PYTHONPATH=$;MODEL_AUTOSCHEDULER=$" -) - add_test( NAME halide_as_onnx_backend_test COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/halide_as_onnx_backend_test.py -v WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties( - halide_as_onnx_backend_test PROPERTIES + halide_as_onnx_backend_test + model_test + PROPERTIES LABELS onnx PASS_REGULAR_EXPRESSION "OK" SKIP_REGULAR_EXPRESSION "\\[SKIP\\]" From a1f799e3132e41fabd97b573358227a3986f2424 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:33:31 -0400 Subject: [PATCH 16/24] Simplify protobuf generation and dependencies --- apps/onnx/CMakeLists.txt | 46 +++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index bb30897a402c..6fad116c6e3a 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -26,32 +26,25 @@ FetchContent_Declare( SOURCE_SUBDIR do-not-load/ ) FetchContent_MakeAvailable(onnx) -set(ONNX_PROTO_FILE ${onnx_SOURCE_DIR}/onnx/onnx.proto) -# Generate sources from onnx.proto -add_custom_target(onnx_proto) +# Add library that converts ONNX models to Halide operators +add_library(oclib STATIC) +add_library(onnx::oclib ALIAS oclib) + +target_sources(oclib PRIVATE onnx_converter.cc "${onnx_SOURCE_DIR}/onnx/onnx.proto") protobuf_generate( - TARGET onnx_proto + TARGET oclib LANGUAGE cpp - PROTOC_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/onnx - PROTOC_OUT_VAR onnx_proto_generated_sources - PROTOS ${ONNX_PROTO_FILE} - IMPORT_DIRS ${CMAKE_CURRENT_BINARY_DIR} -) - -# Add library that converts ONNX models to Halide operators -add_library(oclib STATIC onnx_converter.cc ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx.pb.cc) -target_include_directories( - oclib - PUBLIC - ${CMAKE_CURRENT_BINARY_DIR} - ${Protobuf_INCLUDE_DIRS} + PROTOC_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/_protoc_out + IMPORT_DIRS ${onnx_SOURCE_DIR} ) -target_link_libraries(oclib PUBLIC Halide::Halide ${Protobuf_LITE_LIBRARIES}) +target_include_directories(oclib PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/_protoc_out") +target_link_libraries(oclib PUBLIC Halide::Halide protobuf::libprotobuf-lite) target_compile_definitions(oclib PUBLIC GOOGLE_PROTOBUF_NO_RTTI) +# Add test for the onnx converter library (oclib) add_executable(onnx_converter_test onnx_converter_test.cc) -target_link_libraries(onnx_converter_test PRIVATE oclib) +target_link_libraries(onnx_converter_test PRIVATE onnx::oclib) add_test(NAME onnx_converter_test COMMAND onnx_converter_test) @@ -66,32 +59,33 @@ set_tests_properties( add_halide_generator( onnx_converter.generator SOURCES onnx_converter_generator.cc - LINK_LIBRARIES oclib + LINK_LIBRARIES onnx::oclib ) # Generate test onnx model add_custom_command( OUTPUT test_model.onnx COMMAND - ${CMAKE_COMMAND} -E cat ${CMAKE_CURRENT_SOURCE_DIR}/test_model_proto.txt - | protoc --encode=onnx.ModelProto --proto_path=${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto + protobuf::protoc + --encode=onnx.ModelProto + "--proto_path=${CMAKE_CURRENT_BINARY_DIR}" + "$" + < "$" > test_model.onnx - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/onnx.proto + DEPENDS protobuf::protoc ${onnx_SOURCE_DIR}/onnx/onnx.proto COMMENT "Generating test ONNX model from proto content" MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/test_model_proto.txt VERBATIM ) -add_custom_target(test_model_onnx DEPENDS test_model.onnx) -add_dependencies(test_model_onnx onnx_proto) # Generate static library using halide generator for test onnx model add_halide_library( test_model FROM onnx_converter.generator GENERATOR onnx_model_generator PARAMS model_file_path=${CMAKE_CURRENT_BINARY_DIR}/test_model.onnx + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/test_model.onnx AUTOSCHEDULER Halide::Adams2019 ) -add_dependencies(test_model test_model_onnx) # Test the generated static library add_executable(onnx_converter_generator_test onnx_converter_generator_test.cc) From f4fbb8f31bafa59257fd4f99803242f642105fc7 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 10:47:58 -0400 Subject: [PATCH 17/24] Try using ONNX 1.18.0 --- apps/onnx/CMakeLists.txt | 2 +- pyproject.toml | 2 +- requirements.txt | 6 +----- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 6fad116c6e3a..2b163b74161b 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -22,7 +22,7 @@ include(FetchContent) FetchContent_Declare( onnx GIT_REPOSITORY https://github.com/onnx/onnx.git - GIT_TAG c11b6a715daeb48b056e4c9bed3dfc0dcb243d12 # v1.4.1 + GIT_TAG e709452ef2bbc1d113faf678c24e6d3467696e83 # v1.18.0 SOURCE_SUBDIR do-not-load/ ) FetchContent_MakeAvailable(onnx) diff --git a/pyproject.toml b/pyproject.toml index d5fd2edf9656..6f58af82ef82 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ dev = [ "setuptools-scm>=8.3.1", ] apps = [ - "onnx==1.4.1", + "onnx==1.18.0", # for apps/onnx "pytest", # unspecified onnx dependency ] tools = [ diff --git a/requirements.txt b/requirements.txt index 2cb7e3de1de7..3d1c65828d23 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,7 +35,7 @@ numpy==2.3.2 ; python_full_version >= '3.11' # halide # imageio # onnx -onnx==1.4.1 +onnx==1.18.0 packaging==25.0 # via # pytest @@ -60,8 +60,6 @@ scikit-build-core==0.11.5 setuptools==80.9.0 # via setuptools-scm setuptools-scm==8.3.1 -six==1.17.0 - # via onnx tabulate==0.9.0 # via cli-ui tbump==6.11.0 @@ -72,8 +70,6 @@ tomli==2.2.1 ; python_full_version < '3.11' # setuptools-scm tomlkit==0.11.8 # via tbump -typing==3.10.0.0 - # via onnx typing-extensions==4.14.1 # via # exceptiongroup From f0faabe1a8b73d4c99c4acbdde643d9df34953a8 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 12:27:51 -0400 Subject: [PATCH 18/24] Try another way of silencing unused member warnings --- apps/onnx/denormal_disabler.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/onnx/denormal_disabler.h b/apps/onnx/denormal_disabler.h index bb6b1516c324..285ca86403b8 100644 --- a/apps/onnx/denormal_disabler.h +++ b/apps/onnx/denormal_disabler.h @@ -35,8 +35,10 @@ class DenormalDisabler { } private: - [[maybe_unused]] unsigned int csr_ = 0; - [[maybe_unused]] bool need_restore_ = false; +#ifdef __SSE__ + unsigned int csr_ = 0; + bool need_restore_ = false; +#endif // Interpret denormal as zero (DAZ) bit static constexpr unsigned int DAZ = 0x0040; // Flush denormal to zero (FTZ) bit From 18a4b78f0b342d9cb0ef7c60aabbe3c146292518 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Fri, 8 Aug 2025 12:58:06 -0400 Subject: [PATCH 19/24] Fix project name --- apps/onnx/CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 2b163b74161b..7e84f3988fb2 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.28) -project(onnx) +project(onnx_app) enable_testing() @@ -29,7 +29,7 @@ FetchContent_MakeAvailable(onnx) # Add library that converts ONNX models to Halide operators add_library(oclib STATIC) -add_library(onnx::oclib ALIAS oclib) +add_library(onnx_app::oclib ALIAS oclib) target_sources(oclib PRIVATE onnx_converter.cc "${onnx_SOURCE_DIR}/onnx/onnx.proto") protobuf_generate( @@ -44,7 +44,7 @@ target_compile_definitions(oclib PUBLIC GOOGLE_PROTOBUF_NO_RTTI) # Add test for the onnx converter library (oclib) add_executable(onnx_converter_test onnx_converter_test.cc) -target_link_libraries(onnx_converter_test PRIVATE onnx::oclib) +target_link_libraries(onnx_converter_test PRIVATE onnx_app::oclib) add_test(NAME onnx_converter_test COMMAND onnx_converter_test) @@ -59,7 +59,7 @@ set_tests_properties( add_halide_generator( onnx_converter.generator SOURCES onnx_converter_generator.cc - LINK_LIBRARIES onnx::oclib + LINK_LIBRARIES onnx_app::oclib ) # Generate test onnx model @@ -117,7 +117,7 @@ endif () pybind11_add_module( model_cpp model.cpp benchmarking_utils.h common_types.h denormal_disabler.h ) -target_link_libraries(model_cpp PRIVATE Halide::Halide onnx::oclib) +target_link_libraries(model_cpp PRIVATE Halide::Halide onnx_app::oclib) add_test( NAME model_test From 05dc7ebc1de38e8247d99efd4057d9169c4ca1d0 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Wed, 13 Aug 2025 02:08:29 -0400 Subject: [PATCH 20/24] Update requirements.txt --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 3d1c65828d23..84e591c2ae36 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ # uv export --all-groups --no-hashes --no-emit-project -o requirements.txt cli-ui==0.19.0 # via tbump -cmake==4.0.3 +cmake==4.1.0 colorama==0.4.6 # via # cli-ui @@ -19,7 +19,7 @@ importlib-metadata==8.7.0 ; python_full_version < '3.10' # via setuptools-scm iniconfig==2.1.0 # via pytest -ninja==1.11.1.4 +ninja==1.13.0 numpy==2.0.2 ; python_full_version < '3.10' # via # halide From fec3d67a4ab7a4d4b8df805fedf4dfdcce5a4400 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Wed, 13 Aug 2025 02:15:50 -0400 Subject: [PATCH 21/24] Fix --proto_path --- apps/onnx/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 7e84f3988fb2..6048d849d750 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -68,7 +68,7 @@ add_custom_command( COMMAND protobuf::protoc --encode=onnx.ModelProto - "--proto_path=${CMAKE_CURRENT_BINARY_DIR}" + "--proto_path=${onnx_SOURCE_DIR}" "$" < "$" > test_model.onnx From d9b4014433a193a7d71cdfdc882c3b239a3f6580 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Wed, 13 Aug 2025 10:18:25 -0400 Subject: [PATCH 22/24] Update dependency specs --- pyproject.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6f58af82ef82..b674535f168f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [build-system] requires = [ "pybind11>=2.11.1", - "scikit-build-core==0.11.5", + "scikit-build-core~=0.11.0", "setuptools-scm>=8.3.1", ] build-backend = "scikit_build_core.build" @@ -64,18 +64,18 @@ classifiers = [ [dependency-groups] dev = [ "pybind11>=2.11.1", - "scikit-build-core==0.11.5", + "scikit-build-core~=0.11.0", "setuptools-scm>=8.3.1", ] apps = [ - "onnx==1.18.0", # for apps/onnx + "onnx>=1.18.0", # for apps/onnx "pytest", # unspecified onnx dependency ] tools = [ "cmake>=3.28", "ninja>=1.11", - "tbump>=6.11", "ruff>=0.12", + "tbump>=6.11", ] [project.urls] From 72e1d1a39acdfb4d95ab0f0b5104ec22fa76d98b Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Wed, 13 Aug 2025 10:18:50 -0400 Subject: [PATCH 23/24] Improve search for pybind11 in ONNX app. --- apps/onnx/CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/onnx/CMakeLists.txt b/apps/onnx/CMakeLists.txt index 6048d849d750..1171abd8585a 100644 --- a/apps/onnx/CMakeLists.txt +++ b/apps/onnx/CMakeLists.txt @@ -102,13 +102,13 @@ set_tests_properties( ) # Python bindings to convert onnx models to Halide model -find_package(Python3 COMPONENTS Interpreter Development) -if (NOT Python3_FOUND) - message(WARNING "Could NOT find Python3") +find_package(Python 3 COMPONENTS Interpreter Development) +if (NOT Python_FOUND) + message(WARNING "Could NOT find Python") return() endif () -find_package(pybind11) +find_package(pybind11 HINTS "${Python_SITEARCH}") if (NOT pybind11_FOUND) message(WARNING "Could NOT find pybind11") return() @@ -121,12 +121,12 @@ target_link_libraries(model_cpp PRIVATE Halide::Halide onnx_app::oclib) add_test( NAME model_test - COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/model_test.py -v + COMMAND ${Python_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/model_test.py -v WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_test( NAME halide_as_onnx_backend_test - COMMAND ${Python3_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/halide_as_onnx_backend_test.py -v + COMMAND ${Python_EXECUTABLE} -m unittest ${CMAKE_CURRENT_SOURCE_DIR}/halide_as_onnx_backend_test.py -v WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) set_tests_properties( From 011847fa8d931fd71124445307e7b23c29919aa6 Mon Sep 17 00:00:00 2001 From: Alex Reinking Date: Wed, 13 Aug 2025 13:42:34 -0400 Subject: [PATCH 24/24] Update exclude patterns for halide_as_onnx_backend_test.py --- .../halide_as_onnx_backend_failures_table.py | 1149 +++++++++++++++++ apps/onnx/halide_as_onnx_backend_test.py | 79 +- apps/onnx/update_failures_table.sh | 46 + 3 files changed, 1219 insertions(+), 55 deletions(-) create mode 100644 apps/onnx/halide_as_onnx_backend_failures_table.py create mode 100755 apps/onnx/update_failures_table.sh diff --git a/apps/onnx/halide_as_onnx_backend_failures_table.py b/apps/onnx/halide_as_onnx_backend_failures_table.py new file mode 100644 index 000000000000..16a6511dc925 --- /dev/null +++ b/apps/onnx/halide_as_onnx_backend_failures_table.py @@ -0,0 +1,1149 @@ +# -+-+- THIS FILE WAS GENERATED BY update_failures_table.sh DO NOT EDIT -+-+- # +# fmt: off +HALIDE_ONNX_KNOWN_TEST_FAILURES = [ + ("ERROR:", "Can't equaly split outputs for node ", r"test_split_1d_uneven_split_opset18_.*"), + ("ERROR:", "Can't equaly split outputs for node ", r"test_split_2d_uneven_split_opset18_.*"), + ("ERROR:", "Can't yet generate indices for pooling node ", r"test_maxpool_with_argmax_2d_precomputed_pads_.*"), + ("ERROR:", "Can't yet generate indices for pooling node ", r"test_maxpool_with_argmax_2d_precomputed_strides_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_MaxPool1d_stride_padding_dilation_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_MaxPool2d_stride_padding_dilation_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_3d_diff_heads_with_past_and_present_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_3d_gqa_with_past_and_present_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_3d_with_past_and_present_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_3d_with_past_and_present_qk_matmul_bias_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_3d_with_past_and_present_qk_matmul_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_3d_with_past_and_present_qk_matmul_softcap_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_3d_with_past_and_present_qk_matmul_softmax_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_4d_diff_heads_with_past_and_present_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_4d_gqa_with_past_and_present_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_4d_with_past_and_present_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_4d_with_past_and_present_qk_matmul_bias_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_attention_4d_with_past_and_present_qk_matmul_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_averagepool_2d_ceil_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_averagepool_2d_dilations_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_False_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_averagepool_3d_dilations_large_count_include_pad_is_0_ceil_mode_is_True_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_False_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_averagepool_3d_dilations_large_count_include_pad_is_1_ceil_mode_is_True_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_averagepool_3d_dilations_small_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_bvlc_alexnet_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_center_crop_pad_crop_and_pad_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_center_crop_pad_crop_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_center_crop_pad_pad_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_lstm_batchwise_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_maxpool_2d_ceil_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_maxpool_2d_dilations_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_maxpool_2d_uint8_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_maxpool_3d_dilations_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_maxpool_3d_dilations_use_ref_impl_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_maxpool_3d_dilations_use_ref_impl_large_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_onehot_negative_indices_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_onehot_with_axis_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_onehot_with_negative_axis_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_onehot_without_axis_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_pow_types_int32_float32_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_pow_types_int32_int32_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_pow_types_int64_float32_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_pow_types_int64_int64_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_keep_dims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_keep_dims_example_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_keep_dims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_keep_dims_random_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_negative_axes_keep_dims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_negative_axes_keep_dims_example_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_negative_axes_keep_dims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l1_negative_axes_keep_dims_random_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l2_keep_dims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l2_keep_dims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l2_negative_axes_keep_dims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_l2_negative_axes_keep_dims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_log_sum_exp_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_log_sum_exp_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_log_sum_exp_negative_axes_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_log_sum_exp_negative_axes_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_log_sum_negative_axes_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_log_sum_negative_axes_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_max_bool_inputs_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_max_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_max_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_max_negative_axes_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_max_negative_axes_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_mean_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_mean_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_mean_negative_axes_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_mean_negative_axes_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_min_bool_inputs_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_min_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_min_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_min_negative_axes_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_min_negative_axes_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_prod_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_prod_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_prod_negative_axes_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_prod_negative_axes_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_negative_axes_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_negative_axes_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_keepdims_example_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_keepdims_random_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_negative_axes_keepdims_example_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_negative_axes_keepdims_example_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_negative_axes_keepdims_random_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reduce_sum_square_negative_axes_keepdims_random_expanded_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reshape_zero_and_negative_dim_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_reshape_zero_dim_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_shape_end_1_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_shape_end_negative_1_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_shape_start_1_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_shape_start_1_end_2_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_shape_start_1_end_negative_1_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_shape_start_negative_1_.*"), + ("ERROR:", "Caught an unknown exception!", r"test_shufflenet_.*"), + ("ERROR:", "Dilated convolution not supported for node ", r"test_Conv1d_dilated_.*"), + ("ERROR:", "Dilated convolution not supported for node ", r"test_Conv2d_dilated_.*"), + ("ERROR:", "Dilated convolution not supported for node ", r"test_Conv3d_dilated_.*"), + ("ERROR:", "Dilated convolution not supported for node ", r"test_Conv3d_dilated_strided_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_dropout_default_mask_ratio_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_dropout_default_ratio_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_training_dropout_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_training_dropout_default_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_training_dropout_default_mask_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_training_dropout_mask_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_training_dropout_zero_ratio_.*"), + ("ERROR:", "Expected a single input for Dropout node ", r"test_training_dropout_zero_ratio_mask_.*"), + ("ERROR:", "Expected between one and three inputs for pad node ", r"test_constant_pad_axes_.*"), + ("ERROR:", "Expected between one and three inputs for pad node ", r"test_constant_pad_negative_axes_.*"), + ("ERROR:", "Expected exactly one input for squeeze node ", r"test_squeeze_.*"), + ("ERROR:", "Expected exactly one input for squeeze node ", r"test_squeeze_negative_axes_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NC_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1_ii_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1_mean_weight_negative_ii_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1_weight_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1_weight_ii_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_reduction_mean_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_reduction_sum_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_with_weight_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_with_weight_reduction_mean_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_with_weight_reduction_sum_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2d3d4d5_mean_weight_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_unsqueeze_axis_0_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_unsqueeze_axis_1_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_unsqueeze_axis_2_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_unsqueeze_negative_axes_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_unsqueeze_three_axes_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_unsqueeze_two_axes_.*"), + ("ERROR:", "Expected exactly one input for unsqueeze node ", r"test_unsqueeze_unsorted_axes_.*"), + ("ERROR:", "Inconsistent data types detected for tensor z, expected 9 instead got 1", r"test_dropout_default_mask_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis0_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis0_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis1_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis1_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis_negative_1_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis_negative_1_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis_negative_2_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 2 instead got 3", r"test_layer_normalization_2d_axis_negative_2_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis0_epsilon_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis0_epsilon_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis1_epsilon_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis1_epsilon_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis2_epsilon_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis2_epsilon_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis_negative_1_epsilon_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis_negative_1_epsilon_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis_negative_2_epsilon_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis_negative_2_epsilon_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis_negative_3_epsilon_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 3 instead got 4", r"test_layer_normalization_3d_axis_negative_3_epsilon_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis0_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis0_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis1_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis1_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis2_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis2_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis3_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis3_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_1_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_1_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_2_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_2_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_3_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_3_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_4_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_4d_axis_negative_4_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_default_axis_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor Mean, expected 4 instead got 5", r"test_layer_normalization_default_axis_expanded_ver18_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 1 instead got 0", r"test_reduce_log_sum_asc_axes_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 1 instead got 0", r"test_reduce_log_sum_asc_axes_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 1 instead got 0", r"test_reduce_log_sum_desc_axes_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 1 instead got 0", r"test_reduce_log_sum_desc_axes_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_l1_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_l1_do_not_keepdims_example_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_l1_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_l1_do_not_keepdims_random_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_l2_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_l2_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_log_sum_exp_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_log_sum_exp_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_max_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_max_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_mean_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_mean_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_min_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_min_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_prod_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_prod_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_sum_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_sum_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_sum_square_do_not_keepdims_example_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_sum_square_do_not_keepdims_example_expanded_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_sum_square_do_not_keepdims_random_.*"), + ("ERROR:", "Inconsistent ranks detected for tensor reduced, expected 2 instead got 0", r"test_reduce_sum_square_do_not_keepdims_random_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l1_default_axes_keepdims_example_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l1_default_axes_keepdims_example_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l1_default_axes_keepdims_random_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l1_default_axes_keepdims_random_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l2_default_axes_keepdims_example_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l2_default_axes_keepdims_example_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l2_default_axes_keepdims_random_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_l2_default_axes_keepdims_random_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_log_sum_default_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_log_sum_default_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_log_sum_exp_default_axes_keepdims_example_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_log_sum_exp_default_axes_keepdims_example_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_log_sum_exp_default_axes_keepdims_random_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_log_sum_exp_default_axes_keepdims_random_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_mean_default_axes_keepdims_example_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_mean_default_axes_keepdims_random_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_default_axes_keepdims_example_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_default_axes_keepdims_random_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_empty_axes_input_noop_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_empty_axes_input_noop_example_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_square_default_axes_keepdims_example_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_square_default_axes_keepdims_example_expanded_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_square_default_axes_keepdims_random_.*"), + ("ERROR:", "Invalid shape for input axes", r"test_reduce_sum_square_default_axes_keepdims_random_expanded_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_l1_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_l1_empty_set_expanded_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_l2_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_l2_empty_set_expanded_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_log_sum_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_log_sum_empty_set_expanded_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_log_sum_exp_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_log_sum_exp_empty_set_expanded_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_max_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_min_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_prod_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_sum_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_sum_empty_set_non_reduced_axis_zero_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_sum_square_empty_set_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reduce_sum_square_empty_set_expanded_.*"), + ("ERROR:", "Invalid shape for input data", r"test_reshape_allowzero_reordered_.*"), + ("ERROR:", "Invalid shape for input input", r"test_split_zero_size_splits_opset13_.*"), + ("ERROR:", "Invalid shape for input input", r"test_split_zero_size_splits_opset18_.*"), + ("ERROR:", "Invalid shape for input x", r"test_tril_zero_.*"), + ("ERROR:", "Invalid shape for input x", r"test_triu_zero_.*"), + ("ERROR:", "Only test mode supported yet", r"test_batchnorm_epsilon_training_mode_.*"), + ("ERROR:", "Only test mode supported yet", r"test_batchnorm_example_training_mode_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_3d_input_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_interleaved_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_no_position_ids_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_no_position_ids_interleaved_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_no_position_ids_rotary_dim_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_with_interleaved_rotary_dim_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_rotary_embedding_with_rotary_dim_expanded_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_split_variable_parts_1d_opset13_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_split_variable_parts_1d_opset18_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_split_variable_parts_2d_opset13_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_split_variable_parts_2d_opset18_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_split_variable_parts_default_axis_opset13_.*"), + ("ERROR:", "Unexpected number of inputs for split node ", r"test_split_variable_parts_default_axis_opset18_.*"), + ("ERROR:", "Unsupported binary op type AffineGrid for node ", r"test_affine_grid_2d_.*"), + ("ERROR:", "Unsupported binary op type AffineGrid for node ", r"test_affine_grid_2d_align_corners_.*"), + ("ERROR:", "Unsupported binary op type AffineGrid for node ", r"test_affine_grid_3d_.*"), + ("ERROR:", "Unsupported binary op type AffineGrid for node ", r"test_affine_grid_3d_align_corners_.*"), + ("ERROR:", "Unsupported binary op type ArrayFeatureExtractor for node ", r"test_ai_onnx_ml_array_feature_extractor_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_left_uint16_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_left_uint32_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_left_uint64_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_left_uint8_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_right_uint16_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_right_uint32_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_right_uint64_.*"), + ("ERROR:", "Unsupported binary op type BitShift for node ", r"test_bitshift_right_uint8_.*"), + ("ERROR:", "Unsupported binary op type BitwiseAnd for node ", r"test_bitwise_and_i16_3d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseAnd for node ", r"test_bitwise_and_i32_2d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseAnd for node ", r"test_bitwise_and_ui64_bcast_3v1d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseAnd for node ", r"test_bitwise_and_ui8_bcast_4v3d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseOr for node ", r"test_bitwise_or_i16_4d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseOr for node ", r"test_bitwise_or_i32_2d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseOr for node ", r"test_bitwise_or_ui64_bcast_3v1d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseOr for node ", r"test_bitwise_or_ui8_bcast_4v3d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseXor for node ", r"test_bitwise_xor_i16_3d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseXor for node ", r"test_bitwise_xor_i32_2d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseXor for node ", r"test_bitwise_xor_ui64_bcast_3v1d_.*"), + ("ERROR:", "Unsupported binary op type BitwiseXor for node ", r"test_bitwise_xor_ui8_bcast_4v3d_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_castlike_DOUBLE_to_FLOAT_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_castlike_FLOAT_to_DOUBLE_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_gelu_default_1_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_gelu_default_2_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_gelu_tanh_1_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_gelu_tanh_2_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_prelu_broadcast_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_prelu_example_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_l2_do_not_keepdims_example_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_l2_do_not_keepdims_random_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_l2_keep_dims_example_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_l2_keep_dims_random_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_l2_negative_axes_keep_dims_example_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_l2_negative_axes_keep_dims_random_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_log_sum_exp_do_not_keepdims_example_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_log_sum_exp_do_not_keepdims_random_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_log_sum_exp_keepdims_example_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_log_sum_exp_keepdims_random_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_log_sum_exp_negative_axes_keepdims_example_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_reduce_log_sum_exp_negative_axes_keepdims_random_expanded_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_relu_expanded_ver18_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_softplus_example_expanded_ver18_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_softplus_expanded_ver18_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_softsign_example_expanded_ver18_.*"), + ("ERROR:", "Unsupported binary op type CastLike for node ", r"test_softsign_expanded_ver18_.*"), + ("ERROR:", "Unsupported binary op type CenterCropPad for node ", r"test_center_crop_pad_crop_.*"), + ("ERROR:", "Unsupported binary op type CenterCropPad for node ", r"test_center_crop_pad_crop_and_pad_.*"), + ("ERROR:", "Unsupported binary op type CenterCropPad for node ", r"test_center_crop_pad_crop_axes_chw_.*"), + ("ERROR:", "Unsupported binary op type CenterCropPad for node ", r"test_center_crop_pad_crop_axes_hwc_.*"), + ("ERROR:", "Unsupported binary op type CenterCropPad for node ", r"test_center_crop_pad_crop_negative_axes_hwc_.*"), + ("ERROR:", "Unsupported binary op type CenterCropPad for node ", r"test_center_crop_pad_pad_.*"), + ("ERROR:", "Unsupported binary op type Compress for node ", r"test_compress_0_.*"), + ("ERROR:", "Unsupported binary op type Compress for node ", r"test_compress_1_.*"), + ("ERROR:", "Unsupported binary op type Compress for node ", r"test_compress_default_axis_.*"), + ("ERROR:", "Unsupported binary op type Compress for node ", r"test_compress_negative_axis_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_ConvTranspose2d_no_bias_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_1d_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_3d_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_autopad_same_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_dilations_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_group_2_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_group_2_image_3_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_output_shape_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_pad_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_convtranspose_pads_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node ", r"test_operator_convtranspose_.*"), + ("ERROR:", "Unsupported binary op type ConvTranspose for node test", r"test_convtranspose_kernel_shape_.*"), + ("ERROR:", "Unsupported binary op type CumSum for node ", r"test_cumsum_1d_.*"), + ("ERROR:", "Unsupported binary op type CumSum for node ", r"test_cumsum_1d_exclusive_.*"), + ("ERROR:", "Unsupported binary op type CumSum for node ", r"test_cumsum_1d_reverse_.*"), + ("ERROR:", "Unsupported binary op type CumSum for node ", r"test_cumsum_1d_reverse_exclusive_.*"), + ("ERROR:", "Unsupported binary op type CumSum for node ", r"test_cumsum_2d_axis_0_.*"), + ("ERROR:", "Unsupported binary op type CumSum for node ", r"test_cumsum_2d_axis_1_.*"), + ("ERROR:", "Unsupported binary op type CumSum for node ", r"test_cumsum_2d_negative_axis_.*"), + ("ERROR:", "Unsupported binary op type Einsum for node ", r"test_einsum_batch_matmul_.*"), + ("ERROR:", "Unsupported binary op type Einsum for node ", r"test_einsum_inner_prod_.*"), + ("ERROR:", "Unsupported binary op type GatherElements for node ", r"test_gather_elements_0_.*"), + ("ERROR:", "Unsupported binary op type GatherElements for node ", r"test_gather_elements_1_.*"), + ("ERROR:", "Unsupported binary op type GatherElements for node ", r"test_gather_elements_negative_indices_.*"), + ("ERROR:", "Unsupported binary op type GatherND for node ", r"test_gathernd_example_float32_.*"), + ("ERROR:", "Unsupported binary op type GatherND for node ", r"test_gathernd_example_int32_.*"), + ("ERROR:", "Unsupported binary op type GatherND for node ", r"test_gathernd_example_int32_batch_dim1_.*"), + ("ERROR:", "Unsupported binary op type GreaterOrEqual for node ", r"test_greater_equal_.*"), + ("ERROR:", "Unsupported binary op type GreaterOrEqual for node ", r"test_greater_equal_bcast_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_aligncorners_true_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_bicubic_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_bicubic_align_corners_0_additional_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_bicubic_align_corners_1_additional_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_bilinear_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_bilinear_align_corners_0_additional_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_bilinear_align_corners_1_additional_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_border_padding_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_nearest_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_nearest_align_corners_0_additional_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_nearest_align_corners_1_additional_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_reflection_padding_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_volumetric_bilinear_align_corners_0_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_volumetric_bilinear_align_corners_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_volumetric_nearest_align_corners_0_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_volumetric_nearest_align_corners_1_.*"), + ("ERROR:", "Unsupported binary op type GridSample for node ", r"test_gridsample_zeros_padding_.*"), + ("ERROR:", "Unsupported binary op type LessOrEqual for node ", r"test_less_equal_.*"), + ("ERROR:", "Unsupported binary op type LessOrEqual for node ", r"test_less_equal_bcast_.*"), + ("ERROR:", "Unsupported binary op type MaxUnpool for node ", r"test_maxunpool_export_without_output_shape_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_attn_mask_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_diff_heads_sizes_attn_mask_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_diff_heads_sizes_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_diff_heads_sizes_scaled_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_diff_heads_sizes_softcap_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_gqa_attn_mask_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_gqa_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_gqa_scaled_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_gqa_softcap_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_scaled_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_3d_softcap_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_attn_mask_bool_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_attn_mask_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_diff_heads_sizes_attn_mask_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_diff_heads_sizes_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_diff_heads_sizes_scaled_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_diff_heads_sizes_softcap_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_gqa_attn_mask_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_gqa_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_gqa_scaled_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_gqa_softcap_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_scaled_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_softcap_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_with_qk_matmul_bias_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_with_qk_matmul_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_with_qk_matmul_softcap_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_attention_4d_with_qk_matmul_softmax_expanded_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_broadcast_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_int64_fmod_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_mixed_sign_float32_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_mixed_sign_float64_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_mixed_sign_int16_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_mixed_sign_int32_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_mixed_sign_int64_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_mixed_sign_int8_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_uint16_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_uint32_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_uint64_.*"), + ("ERROR:", "Unsupported binary op type Mod for node ", r"test_mod_uint8_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NC_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1_ii_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_no_weight_reduction_mean_ii_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_reduction_mean_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_reduction_sum_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2d3_none_no_weight_negative_ii_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2d3d4d5_none_no_weight_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3d4d5_none_no_weight_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_3d_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_3d_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_no_weight_ii_3d_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_no_weight_ii_3d_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_no_weight_ii_4d_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_no_weight_ii_4d_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_no_weight_ii_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_no_weight_ii_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_none_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_none_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_sum_expanded_.*"), + ("ERROR:", "Unsupported binary op type NegativeLogLikelihoodLoss for node ", r"test_sce_sum_log_prob_expanded_.*"), + ("ERROR:", "Unsupported binary op type QuantizeLinear for node ", r"test_quantizelinear_blocked_symmetric_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_2d_axis0_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_2d_axis1_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_2d_axis_negative_1_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_2d_axis_negative_2_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_3d_axis0_epsilon_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_3d_axis1_epsilon_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_3d_axis2_epsilon_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_3d_axis_negative_1_epsilon_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_3d_axis_negative_2_epsilon_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_3d_axis_negative_3_epsilon_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis0_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis1_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis2_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis3_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis_negative_1_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis_negative_2_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis_negative_3_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_4d_axis_negative_4_.*"), + ("ERROR:", "Unsupported binary op type RMSNormalization for node ", r"test_rms_normalization_default_axis_.*"), + ("ERROR:", "Unsupported binary op type ReverseSequence for node ", r"test_reversesequence_batch_.*"), + ("ERROR:", "Unsupported binary op type ReverseSequence for node ", r"test_reversesequence_time_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_NCd1d2d3_none_no_weight_negative_ii_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_NCd1d2d3d4d5_none_no_weight_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_3d_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_no_weight_ii_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_no_weight_ii_3d_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_no_weight_ii_4d_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_none_.*"), + ("ERROR:", "Unsupported binary op type SoftmaxCrossEntropyLoss for node ", r"test_sce_sum_.*"), + ("ERROR:", "Unsupported binary op type SplitToSequence for node ", r"test_sequence_model8_.*"), + ("ERROR:", "Unsupported binary op type SplitToSequence for node ", r"test_split_to_sequence_1_.*"), + ("ERROR:", "Unsupported binary op type SplitToSequence for node ", r"test_split_to_sequence_2_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_attention_3d_causal_expanded_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_attention_3d_diff_heads_sizes_causal_expanded_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_attention_3d_gqa_causal_expanded_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_attention_4d_causal_expanded_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_attention_4d_diff_heads_sizes_causal_expanded_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_attention_4d_gqa_causal_expanded_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_tril_neg_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_tril_out_neg_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_tril_out_pos_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_tril_pos_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_tril_square_neg_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_triu_neg_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_triu_one_row_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_triu_out_neg_out_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_triu_out_pos_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_triu_pos_.*"), + ("ERROR:", "Unsupported binary op type Trilu for node ", r"test_triu_square_neg_.*"), + ("ERROR:", "Unsupported binary op type Upsample for node ", r"test_upsample_nearest_.*"), + ("ERROR:", "Unsupported convolution padding SAME_LOWER for node ", r"test_conv_with_autopad_same_.*"), + ("ERROR:", "Unsupported op type Adagrad", r"test_adagrad_.*"), + ("ERROR:", "Unsupported op type Adagrad", r"test_adagrad_multiple_.*"), + ("ERROR:", "Unsupported op type Adam", r"test_adam_.*"), + ("ERROR:", "Unsupported op type Adam", r"test_adam_multiple_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_3d_diff_heads_with_past_and_present_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_3d_gqa_with_past_and_present_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_3d_with_past_and_present_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_3d_with_past_and_present_qk_matmul_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_3d_with_past_and_present_qk_matmul_bias_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_3d_with_past_and_present_qk_matmul_softcap_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_3d_with_past_and_present_qk_matmul_softmax_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_diff_heads_with_past_and_present_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_gqa_with_past_and_present_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_with_past_and_present_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_with_past_and_present_qk_matmul_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_with_past_and_present_qk_matmul_bias_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_with_qk_matmul_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_with_qk_matmul_bias_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_with_qk_matmul_softcap_.*"), + ("ERROR:", "Unsupported op type Attention", r"test_attention_4d_with_qk_matmul_softmax_.*"), + ("ERROR:", "Unsupported op type DynamicQuantizeLinear", r"test_dynamicquantizelinear_.*"), + ("ERROR:", "Unsupported op type DynamicQuantizeLinear", r"test_dynamicquantizelinear_max_adjusted_.*"), + ("ERROR:", "Unsupported op type DynamicQuantizeLinear", r"test_dynamicquantizelinear_min_adjusted_.*"), + ("ERROR:", "Unsupported op type Gradient", r"test_gradient_of_add_.*"), + ("ERROR:", "Unsupported op type Gradient", r"test_gradient_of_add_and_mul_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_2d_axis0_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_2d_axis1_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_2d_axis_negative_1_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_2d_axis_negative_2_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_3d_axis0_epsilon_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_3d_axis1_epsilon_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_3d_axis2_epsilon_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_3d_axis_negative_1_epsilon_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_3d_axis_negative_2_epsilon_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_3d_axis_negative_3_epsilon_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis0_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis1_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis2_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis3_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis_negative_1_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis_negative_2_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis_negative_3_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_4d_axis_negative_4_.*"), + ("ERROR:", "Unsupported op type LayerNormalization", r"test_layer_normalization_default_axis_.*"), + ("ERROR:", "Unsupported op type Loop", r"test_loop11_.*"), + ("ERROR:", "Unsupported op type Loop", r"test_range_float_type_positive_delta_expanded_.*"), + ("ERROR:", "Unsupported op type Loop", r"test_range_int32_type_negative_delta_expanded_.*"), + ("ERROR:", "Unsupported op type Momentum", r"test_momentum_.*"), + ("ERROR:", "Unsupported op type Momentum", r"test_momentum_multiple_.*"), + ("ERROR:", "Unsupported op type Momentum", r"test_nesterov_momentum_.*"), + ("ERROR:", "Unsupported op type Scan", r"test_scan9_sum_.*"), + ("ERROR:", "Unsupported op type Scan", r"test_scan_sum_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_NCd1_mean_weight_negative_ii_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_NCd1d2d3d4d5_mean_weight_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_3d_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_no_weight_ii_3d_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_no_weight_ii_4d_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_no_weight_ii_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_weight_ii_3d_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_weight_ii_4d_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_weight_ii_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_mean_weight_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_none_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_none_weights_log_prob_.*"), + ("ERROR:", "Unsupported op type SoftmaxCrossEntropyLoss", r"test_sce_sum_log_prob_.*"), + ("ERROR:", "Unsupported op type TopK", r"test_top_k_.*"), + ("ERROR:", "Unsupported op type TopK", r"test_top_k_negative_axis_.*"), + ("ERROR:", "Unsupported op type TopK", r"test_top_k_same_values_.*"), + ("ERROR:", "Unsupported op type TopK", r"test_top_k_same_values_2d_.*"), + ("ERROR:", "Unsupported op type TopK", r"test_top_k_same_values_largest_.*"), + ("ERROR:", "Unsupported op type TopK", r"test_top_k_smallest_.*"), + ("ERROR:", "Unsupported op type TopK", r"test_top_k_uint64_.*"), + ("ERROR:", "Unsupported op type Unique", r"test_unique_length_1_.*"), + ("ERROR:", "Unsupported op type Unique", r"test_unique_not_sorted_without_axis_.*"), + ("ERROR:", "Unsupported op type Unique", r"test_unique_sorted_with_axis_.*"), + ("ERROR:", "Unsupported op type Unique", r"test_unique_sorted_with_axis_3d_.*"), + ("ERROR:", "Unsupported op type Unique", r"test_unique_sorted_with_negative_axis_.*"), + ("ERROR:", "Unsupported op type Unique", r"test_unique_sorted_without_axis_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_DOUBLE_to_FLOAT16_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_BFLOAT16_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_FLOAT16_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_FLOAT4E2M1_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_FLOAT8E4M3FNUZ_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_FLOAT8E4M3FN_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_FLOAT8E5M2FNUZ_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_FLOAT8E5M2_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_INT4_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_STRING_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_FLOAT_to_UINT4_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FNUZ_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_no_saturate_FLOAT_to_FLOAT8E4M3FN_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_no_saturate_FLOAT_to_FLOAT8E5M2FNUZ_.*"), + ("ERROR:", "Unsupported or unknown target type for node ", r"test_cast_no_saturate_FLOAT_to_FLOAT8E5M2_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_averagepool_2d_precomputed_same_upper_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_averagepool_2d_same_lower_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_averagepool_2d_same_upper_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_lppool_2d_same_lower_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_lppool_2d_same_upper_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_maxpool_2d_precomputed_same_upper_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_maxpool_2d_same_lower_.*"), + ("ERROR:", "Unsupported type of padding for pooling node ", r"test_maxpool_2d_same_upper_.*"), + ("ERROR:", "Unsupported type of pooling LpPool for node ", r"test_lppool_1d_default_.*"), + ("ERROR:", "Unsupported type of pooling LpPool for node ", r"test_lppool_2d_default_.*"), + ("ERROR:", "Unsupported type of pooling LpPool for node ", r"test_lppool_2d_dilations_.*"), + ("ERROR:", "Unsupported type of pooling LpPool for node ", r"test_lppool_2d_pads_.*"), + ("ERROR:", "Unsupported type of pooling LpPool for node ", r"test_lppool_2d_strides_.*"), + ("ERROR:", "Unsupported type of pooling LpPool for node ", r"test_lppool_3d_default_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_default_axis_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_default_axis_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_default_axis_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_default_axis_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_keepdims_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_keepdims_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_keepdims_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_keepdims_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_negative_axis_keepdims_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_negative_axis_keepdims_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_negative_axis_keepdims_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_negative_axis_keepdims_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_no_keepdims_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_no_keepdims_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_no_keepdims_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMax for node ", r"test_argmax_no_keepdims_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_default_axis_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_default_axis_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_default_axis_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_default_axis_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_keepdims_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_keepdims_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_keepdims_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_keepdims_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_negative_axis_keepdims_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_negative_axis_keepdims_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_negative_axis_keepdims_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_negative_axis_keepdims_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_no_keepdims_example_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_no_keepdims_example_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_no_keepdims_random_.*"), + ("ERROR:", "Unsupported unary op type ArgMin for node ", r"test_argmin_no_keepdims_random_select_last_index_.*"), + ("ERROR:", "Unsupported unary op type Bernoulli for node ", r"test_bernoulli_.*"), + ("ERROR:", "Unsupported unary op type Bernoulli for node ", r"test_bernoulli_double_.*"), + ("ERROR:", "Unsupported unary op type Bernoulli for node ", r"test_bernoulli_seed_.*"), + ("ERROR:", "Unsupported unary op type Binarizer for node ", r"test_ai_onnx_ml_binarizer_.*"), + ("ERROR:", "Unsupported unary op type BitwiseNot for node ", r"test_bitwise_not_2d_.*"), + ("ERROR:", "Unsupported unary op type BitwiseNot for node ", r"test_bitwise_not_3d_.*"), + ("ERROR:", "Unsupported unary op type BitwiseNot for node ", r"test_bitwise_not_4d_.*"), + ("ERROR:", "Unsupported unary op type BlackmanWindow for node ", r"test_blackmanwindow_.*"), + ("ERROR:", "Unsupported unary op type BlackmanWindow for node ", r"test_blackmanwindow_symmetric_.*"), + ("ERROR:", "Unsupported unary op type Celu for node ", r"test_celu_.*"), + ("ERROR:", "Unsupported unary op type DFT for node ", r"test_dft_axis_opset19_.*"), + ("ERROR:", "Unsupported unary op type DFT for node ", r"test_dft_inverse_opset19_.*"), + ("ERROR:", "Unsupported unary op type DFT for node ", r"test_dft_opset19_.*"), + ("ERROR:", "Unsupported unary op type DepthToSpace for node ", r"test_depthtospace_crd_mode_example_.*"), + ("ERROR:", "Unsupported unary op type DepthToSpace for node ", r"test_depthtospace_example_.*"), + ("ERROR:", "Unsupported unary op type Det for node ", r"test_det_2d_.*"), + ("ERROR:", "Unsupported unary op type Det for node ", r"test_det_nd_.*"), + ("ERROR:", "Unsupported unary op type Einsum for node ", r"test_einsum_batch_diagonal_.*"), + ("ERROR:", "Unsupported unary op type Einsum for node ", r"test_einsum_sum_.*"), + ("ERROR:", "Unsupported unary op type Einsum for node ", r"test_einsum_transpose_.*"), + ("ERROR:", "Unsupported unary op type EyeLike for node ", r"test_eyelike_populate_off_main_diagonal_.*"), + ("ERROR:", "Unsupported unary op type EyeLike for node ", r"test_eyelike_with_dtype_.*"), + ("ERROR:", "Unsupported unary op type EyeLike for node ", r"test_eyelike_without_dtype_.*"), + ("ERROR:", "Unsupported unary op type Gelu for node ", r"test_gelu_default_1_.*"), + ("ERROR:", "Unsupported unary op type Gelu for node ", r"test_gelu_default_2_.*"), + ("ERROR:", "Unsupported unary op type Gelu for node ", r"test_gelu_tanh_1_.*"), + ("ERROR:", "Unsupported unary op type Gelu for node ", r"test_gelu_tanh_2_.*"), + ("ERROR:", "Unsupported unary op type HammingWindow for node ", r"test_hammingwindow_.*"), + ("ERROR:", "Unsupported unary op type HammingWindow for node ", r"test_hammingwindow_symmetric_.*"), + ("ERROR:", "Unsupported unary op type HannWindow for node ", r"test_hannwindow_.*"), + ("ERROR:", "Unsupported unary op type HannWindow for node ", r"test_hannwindow_symmetric_.*"), + ("ERROR:", "Unsupported unary op type HardSigmoid for node ", r"test_hardsigmoid_.*"), + ("ERROR:", "Unsupported unary op type HardSigmoid for node ", r"test_hardsigmoid_default_.*"), + ("ERROR:", "Unsupported unary op type HardSigmoid for node ", r"test_hardsigmoid_example_.*"), + ("ERROR:", "Unsupported unary op type HardSigmoid for node ", r"test_hardswish_expanded_.*"), + ("ERROR:", "Unsupported unary op type HardSwish for node ", r"test_hardswish_.*"), + ("ERROR:", "Unsupported unary op type Hardmax for node ", r"test_hardmax_axis_0_.*"), + ("ERROR:", "Unsupported unary op type Hardmax for node ", r"test_hardmax_axis_1_.*"), + ("ERROR:", "Unsupported unary op type Hardmax for node ", r"test_hardmax_axis_2_.*"), + ("ERROR:", "Unsupported unary op type Hardmax for node ", r"test_hardmax_default_axis_.*"), + ("ERROR:", "Unsupported unary op type Hardmax for node ", r"test_hardmax_example_.*"), + ("ERROR:", "Unsupported unary op type Hardmax for node ", r"test_hardmax_negative_axis_.*"), + ("ERROR:", "Unsupported unary op type Hardmax for node ", r"test_hardmax_one_hot_.*"), + ("ERROR:", "Unsupported unary op type If for node ", r"test_if_.*"), + ("ERROR:", "Unsupported unary op type If for node ", r"test_if_opt_.*"), + ("ERROR:", "Unsupported unary op type If for node ", r"test_if_seq_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_bmp_rgb_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_jpeg2k_rgb_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_jpeg_bgr_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_jpeg_grayscale_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_jpeg_rgb_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_png_rgb_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_pnm_rgb_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_tiff_rgb_.*"), + ("ERROR:", "Unsupported unary op type ImageDecoder for node ", r"test_image_decoder_decode_webp_rgb_.*"), + ("ERROR:", "Unsupported unary op type MeanVarianceNormalization for node ", r"test_mvn_.*"), + ("ERROR:", "Unsupported unary op type Mish for node ", r"test_mish_.*"), + ("ERROR:", "Unsupported unary op type NonZero for node ", r"test_nonzero_example_.*"), + ("ERROR:", "Unsupported unary op type OptionalGetElement for node ", r"test_optional_get_element_tensor_.*"), + ("ERROR:", "Unsupported unary op type OptionalHasElement for node ", r"test_optional_has_element_empty_no_input_name_optional_input_.*"), + ("ERROR:", "Unsupported unary op type OptionalHasElement for node ", r"test_optional_has_element_empty_no_input_name_tensor_input_.*"), + ("ERROR:", "Unsupported unary op type RandomUniformLike for node ", r"test_bernoulli_double_expanded_.*"), + ("ERROR:", "Unsupported unary op type RandomUniformLike for node ", r"test_bernoulli_expanded_.*"), + ("ERROR:", "Unsupported unary op type RandomUniformLike for node ", r"test_bernoulli_seed_expanded_.*"), + ("ERROR:", "Unsupported unary op type Round for node ", r"test_dynamicquantizelinear_expanded_.*"), + ("ERROR:", "Unsupported unary op type Round for node ", r"test_dynamicquantizelinear_max_adjusted_expanded_.*"), + ("ERROR:", "Unsupported unary op type Round for node ", r"test_dynamicquantizelinear_min_adjusted_expanded_.*"), + ("ERROR:", "Unsupported unary op type Round for node ", r"test_round_.*"), + ("ERROR:", "Unsupported unary op type SpaceToDepth for node ", r"test_spacetodepth_.*"), + ("ERROR:", "Unsupported unary op type SpaceToDepth for node ", r"test_spacetodepth_example_.*"), + ("ERROR:", "Unsupported unary op type SplitToSequence for node ", r"test_sequence_model6_.*"), + ("ERROR:", "Unsupported unary op type SplitToSequence for node ", r"test_sequence_model7_.*"), + ("ERROR:", "Unsupported unary op type SplitToSequence for node ", r"test_split_to_sequence_nokeepdims_.*"), + ("ERROR:", "Unsupported unary op type TfIdfVectorizer for node ", r"test_tfidfvectorizer_tf_batch_onlybigrams_skip0_.*"), + ("ERROR:", "Unsupported unary op type TfIdfVectorizer for node ", r"test_tfidfvectorizer_tf_batch_onlybigrams_skip5_.*"), + ("ERROR:", "Unsupported unary op type TfIdfVectorizer for node ", r"test_tfidfvectorizer_tf_batch_uniandbigrams_skip5_.*"), + ("ERROR:", "Unsupported unary op type TfIdfVectorizer for node ", r"test_tfidfvectorizer_tf_only_bigrams_skip0_.*"), + ("ERROR:", "Unsupported unary op type TfIdfVectorizer for node ", r"test_tfidfvectorizer_tf_onlybigrams_levelempty_.*"), + ("ERROR:", "Unsupported unary op type TfIdfVectorizer for node ", r"test_tfidfvectorizer_tf_onlybigrams_skip5_.*"), + ("ERROR:", "Unsupported unary op type TfIdfVectorizer for node ", r"test_tfidfvectorizer_tf_uniandbigrams_skip5_.*"), + ("ERROR:", "Unsupported unary op type TreeEnsemble for node ", r"test_ai_onnx_ml_tree_ensemble_set_membership_.*"), + ("ERROR:", "Unsupported unary op type TreeEnsemble for node ", r"test_ai_onnx_ml_tree_ensemble_single_tree_.*"), + ("ERROR:", "Unsupported unary op type Trilu for node ", r"test_tril_.*"), + ("ERROR:", "Unsupported unary op type Trilu for node ", r"test_tril_one_row_neg_.*"), + ("ERROR:", "Unsupported unary op type Trilu for node ", r"test_tril_square_.*"), + ("ERROR:", "Unsupported unary op type Trilu for node ", r"test_triu_.*"), + ("ERROR:", "Unsupported unary op type Trilu for node ", r"test_triu_square_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_attn_mask_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_causal_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_diff_heads_sizes_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_diff_heads_sizes_attn_mask_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_diff_heads_sizes_causal_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_diff_heads_sizes_scaled_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_diff_heads_sizes_softcap_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_gqa_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_gqa_attn_mask_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_gqa_causal_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_gqa_scaled_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_gqa_softcap_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_scaled_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_3d_softcap_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_attn_mask_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_attn_mask_bool_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_causal_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_diff_heads_sizes_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_diff_heads_sizes_attn_mask_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_diff_heads_sizes_causal_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_diff_heads_sizes_scaled_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_diff_heads_sizes_softcap_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_gqa_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_gqa_attn_mask_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_gqa_causal_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_gqa_scaled_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_gqa_softcap_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_scaled_.*"), + ("ERROR:", "Unsupported variadic op type Attention for node ", r"test_attention_4d_softcap_.*"), + ("ERROR:", "Unsupported variadic op type Col2Im for node ", r"test_col2im_.*"), + ("ERROR:", "Unsupported variadic op type Col2Im for node ", r"test_col2im_5d_.*"), + ("ERROR:", "Unsupported variadic op type Col2Im for node ", r"test_col2im_dilations_.*"), + ("ERROR:", "Unsupported variadic op type Col2Im for node ", r"test_col2im_pads_.*"), + ("ERROR:", "Unsupported variadic op type Col2Im for node ", r"test_col2im_strides_.*"), + ("ERROR:", "Unsupported variadic op type ConvInteger for node ", r"test_convinteger_with_padding_.*"), + ("ERROR:", "Unsupported variadic op type ConvInteger for node ", r"test_convinteger_without_padding_.*"), + ("ERROR:", "Unsupported variadic op type ConvTranspose for node ", r"test_ConvTranspose2d_.*"), + ("ERROR:", "Unsupported variadic op type DFT for node ", r"test_dft_.*"), + ("ERROR:", "Unsupported variadic op type DFT for node ", r"test_dft_axis_.*"), + ("ERROR:", "Unsupported variadic op type DFT for node ", r"test_dft_inverse_.*"), + ("ERROR:", "Unsupported variadic op type DeformConv for node ", r"test_basic_deform_conv_with_padding_.*"), + ("ERROR:", "Unsupported variadic op type DeformConv for node ", r"test_basic_deform_conv_without_padding_.*"), + ("ERROR:", "Unsupported variadic op type DeformConv for node ", r"test_deform_conv_with_mask_bias_.*"), + ("ERROR:", "Unsupported variadic op type DeformConv for node ", r"test_deform_conv_with_multiple_offset_groups_.*"), + ("ERROR:", "Unsupported variadic op type DequantizeLinear for node ", r"test_dequantizelinear_.*"), + ("ERROR:", "Unsupported variadic op type DequantizeLinear for node ", r"test_dequantizelinear_axis_.*"), + ("ERROR:", "Unsupported variadic op type DequantizeLinear for node ", r"test_dequantizelinear_blocked_.*"), + ("ERROR:", "Unsupported variadic op type DequantizeLinear for node ", r"test_dequantizelinear_int16_.*"), + ("ERROR:", "Unsupported variadic op type DequantizeLinear for node ", r"test_dequantizelinear_uint16_.*"), + ("ERROR:", "Unsupported variadic op type GroupNormalization for node ", r"test_group_normalization_epsilon_.*"), + ("ERROR:", "Unsupported variadic op type GroupNormalization for node ", r"test_group_normalization_example_.*"), + ("ERROR:", "Unsupported variadic op type InstanceNormalization for node ", r"test_instancenorm_epsilon_.*"), + ("ERROR:", "Unsupported variadic op type InstanceNormalization for node ", r"test_instancenorm_example_.*"), + ("ERROR:", "Unsupported variadic op type InstanceNormalization for node ", r"test_operator_symbolic_override_.*"), + ("ERROR:", "Unsupported variadic op type MatMulInteger for node ", r"test_matmulinteger_.*"), + ("ERROR:", "Unsupported variadic op type MaxUnpool for node ", r"test_maxunpool_export_with_output_shape_.*"), + ("ERROR:", "Unsupported variadic op type MelWeightMatrix for node ", r"test_melweightmatrix_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1_mean_weight_negative_ii_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1_weight_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1_weight_ii_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_with_weight_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_with_weight_reduction_mean_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_with_weight_reduction_sum_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2_with_weight_reduction_sum_ii_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2d3_sum_weight_high_ii_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_nllloss_NCd1d2d3d4d5_mean_weight_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1_mean_weight_negative_ii_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3_sum_weight_high_ii_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3d4d5_mean_weight_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_ii_3d_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_ii_3d_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_ii_4d_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_ii_4d_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_ii_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_ii_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_mean_weight_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_none_weights_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NegativeLogLikelihoodLoss for node ", r"test_sce_none_weights_log_prob_expanded_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_center_point_box_format_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_flipped_coordinates_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_identical_boxes_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_limit_output_size_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_single_box_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_suppress_by_IOU_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_suppress_by_IOU_and_scores_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_two_batches_.*"), + ("ERROR:", "Unsupported variadic op type NonMaxSuppression for node ", r"test_nonmaxsuppression_two_classes_.*"), + ("ERROR:", "Unsupported variadic op type QLinearConv for node ", r"test_qlinearconv_.*"), + ("ERROR:", "Unsupported variadic op type QLinearMatMul for node ", r"test_qlinearmatmul_2D_int8_float32_.*"), + ("ERROR:", "Unsupported variadic op type QLinearMatMul for node ", r"test_qlinearmatmul_2D_uint8_float32_.*"), + ("ERROR:", "Unsupported variadic op type QLinearMatMul for node ", r"test_qlinearmatmul_3D_int8_float32_.*"), + ("ERROR:", "Unsupported variadic op type QLinearMatMul for node ", r"test_qlinearmatmul_3D_uint8_float32_.*"), + ("ERROR:", "Unsupported variadic op type QuantizeLinear for node ", r"test_quantizelinear_.*"), + ("ERROR:", "Unsupported variadic op type QuantizeLinear for node ", r"test_quantizelinear_axis_.*"), + ("ERROR:", "Unsupported variadic op type QuantizeLinear for node ", r"test_quantizelinear_blocked_asymmetric_.*"), + ("ERROR:", "Unsupported variadic op type QuantizeLinear for node ", r"test_quantizelinear_int16_.*"), + ("ERROR:", "Unsupported variadic op type QuantizeLinear for node ", r"test_quantizelinear_uint16_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_range_float_type_positive_delta_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_range_int32_type_negative_delta_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_2d_axis0_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_2d_axis1_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_2d_axis_negative_1_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_2d_axis_negative_2_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_3d_axis0_epsilon_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_3d_axis1_epsilon_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_3d_axis2_epsilon_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_3d_axis_negative_1_epsilon_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_3d_axis_negative_2_epsilon_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_3d_axis_negative_3_epsilon_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis0_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis1_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis2_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis3_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis_negative_1_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis_negative_2_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis_negative_3_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_4d_axis_negative_4_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Range for node ", r"test_rms_normalization_default_axis_expanded_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_cubic_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_cubic_A_n0p5_exclude_outside_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_cubic_align_corners_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_cubic_antialias_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_linear_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_linear_align_corners_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_linear_antialias_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_linear_half_pixel_symmetric_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_scales_nearest_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_sizes_cubic_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_sizes_cubic_antialias_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_sizes_linear_antialias_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_sizes_linear_pytorch_half_pixel_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_sizes_nearest_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_sizes_nearest_not_larger_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_downsample_sizes_nearest_not_smaller_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_tf_crop_and_resize_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_tf_crop_and_resize_axes_2_3_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_tf_crop_and_resize_axes_3_2_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_tf_crop_and_resize_extrapolation_value_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_cubic_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_cubic_A_n0p5_exclude_outside_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_cubic_align_corners_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_cubic_asymmetric_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_linear_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_linear_align_corners_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_linear_half_pixel_symmetric_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_nearest_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_nearest_axes_2_3_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_scales_nearest_axes_3_2_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_cubic_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_axes_2_3_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_axes_3_2_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_ceil_half_pixel_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_floor_align_corners_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_not_larger_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_not_smaller_.*"), + ("ERROR:", "Unsupported variadic op type Resize for node ", r"test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric_.*"), + ("ERROR:", "Unsupported variadic op type RoiAlign for node ", r"test_roialign_aligned_false_.*"), + ("ERROR:", "Unsupported variadic op type RoiAlign for node ", r"test_roialign_aligned_true_.*"), + ("ERROR:", "Unsupported variadic op type RoiAlign for node ", r"test_roialign_mode_max_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_3d_input_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_interleaved_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_no_position_ids_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_no_position_ids_interleaved_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_no_position_ids_rotary_dim_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_with_interleaved_rotary_dim_.*"), + ("ERROR:", "Unsupported variadic op type RotaryEmbedding for node ", r"test_rotary_embedding_with_rotary_dim_.*"), + ("ERROR:", "Unsupported variadic op type STFT for node ", r"test_stft_.*"), + ("ERROR:", "Unsupported variadic op type STFT for node ", r"test_stft_with_window_.*"), + ("ERROR:", "Unsupported variadic op type Scatter for node ", r"test_scatter_with_axis_.*"), + ("ERROR:", "Unsupported variadic op type Scatter for node ", r"test_scatter_without_axis_.*"), + ("ERROR:", "Unsupported variadic op type ScatterElements for node ", r"test_scatter_elements_with_axis_.*"), + ("ERROR:", "Unsupported variadic op type ScatterElements for node ", r"test_scatter_elements_with_duplicate_indices_.*"), + ("ERROR:", "Unsupported variadic op type ScatterElements for node ", r"test_scatter_elements_with_negative_indices_.*"), + ("ERROR:", "Unsupported variadic op type ScatterElements for node ", r"test_scatter_elements_with_reduction_max_.*"), + ("ERROR:", "Unsupported variadic op type ScatterElements for node ", r"test_scatter_elements_with_reduction_min_.*"), + ("ERROR:", "Unsupported variadic op type ScatterElements for node ", r"test_scatter_elements_without_axis_.*"), + ("ERROR:", "Unsupported variadic op type ScatterND for node ", r"test_scatternd_.*"), + ("ERROR:", "Unsupported variadic op type ScatterND for node ", r"test_scatternd_add_.*"), + ("ERROR:", "Unsupported variadic op type ScatterND for node ", r"test_scatternd_max_.*"), + ("ERROR:", "Unsupported variadic op type ScatterND for node ", r"test_scatternd_min_.*"), + ("ERROR:", "Unsupported variadic op type ScatterND for node ", r"test_scatternd_multiply_.*"), + ("ERROR:", "Unsupported variadic op type SequenceConstruct for node ", r"test_sequence_model2_.*"), + ("ERROR:", "Unsupported variadic op type SequenceConstruct for node ", r"test_sequence_model3_.*"), + ("ERROR:", "Unsupported variadic op type SequenceConstruct for node ", r"test_sequence_model4_.*"), + ("ERROR:", "Unsupported variadic op type SequenceConstruct for node ", r"test_sequence_model5_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_NCd1_mean_weight_negative_ii_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_NCd1d2d3_sum_weight_high_ii_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_NCd1d2d3d4d5_mean_weight_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_weight_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_weight_ii_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_weight_ii_3d_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_mean_weight_ii_4d_.*"), + ("ERROR:", "Unsupported variadic op type SoftmaxCrossEntropyLoss for node ", r"test_sce_none_weights_.*"), + ("ERROR:", "Unsupported wrap padding type of node ", r"test_wrap_pad_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_affine_grid_2d_align_corners_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_affine_grid_2d_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_affine_grid_3d_align_corners_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_affine_grid_3d_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_blackmanwindow_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_blackmanwindow_symmetric_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_center_crop_pad_crop_axes_chw_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_center_crop_pad_crop_axes_hwc_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_center_crop_pad_crop_negative_axes_hwc_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_elu_default_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_elu_example_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_elu_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_group_normalization_epsilon_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_group_normalization_example_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_hammingwindow_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_hammingwindow_symmetric_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_hannwindow_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_hannwindow_symmetric_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_hardsigmoid_default_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_hardsigmoid_example_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_hardsigmoid_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_leakyrelu_default_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_leakyrelu_example_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_leakyrelu_expanded_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_mvn_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_optional_has_element_empty_no_input_optional_input_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_optional_has_element_empty_no_input_tensor_input_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_selu_default_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_selu_example_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_selu_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_sequence_model1_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_shrink_hard_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_shrink_soft_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_thresholdedrelu_default_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_thresholdedrelu_example_expanded_ver18_.*"), + ("ERROR:", "Value not specified for constant node ", r"test_thresholdedrelu_expanded_ver18_.*"), + ("ERROR:", "bfloat16 aren't supported as model input type", r"test_cast_BFLOAT16_to_FLOAT_.*"), + ("ERROR:", "bfloat16 aren't supported as model input type", r"test_castlike_BFLOAT16_to_FLOAT_.*"), + ("ERROR:", "bfloat16 aren't supported as model input type", r"test_castlike_BFLOAT16_to_FLOAT_expanded_.*"), + ("ERROR:", "bfloat16 aren't supported as model input type", r"test_castlike_FLOAT_to_BFLOAT16_.*"), + ("ERROR:", "bfloat16 aren't supported as model input type", r"test_castlike_FLOAT_to_BFLOAT16_expanded_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_DOUBLE_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_FLOAT4E2M1_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_FLOAT8E4M3FNUZ_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_FLOAT8E4M3FN_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_FLOAT8E5M2FNUZ_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_FLOAT8E5M2_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_FLOAT_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_INT4_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_FLOAT16_to_UINT4_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FNUZ_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_no_saturate_FLOAT16_to_FLOAT8E4M3FN_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2FNUZ_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_cast_no_saturate_FLOAT16_to_FLOAT8E5M2_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_DOUBLE_to_FLOAT16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_DOUBLE_to_FLOAT16_expanded_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_FLOAT16_to_DOUBLE_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_FLOAT16_to_DOUBLE_expanded_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_FLOAT16_to_FLOAT_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_FLOAT16_to_FLOAT_expanded_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_FLOAT_to_FLOAT16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_castlike_FLOAT_to_FLOAT16_expanded_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_isinf_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_isnan_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_max_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_min_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_mod_mixed_sign_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_qlinearmatmul_2D_int8_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_qlinearmatmul_2D_uint8_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_qlinearmatmul_3D_int8_float16_.*"), + ("ERROR:", "float16 aren't supported as model input type", r"test_qlinearmatmul_3D_uint8_float16_.*"), + ("ERROR:", "string can't be used as model input type", r"test_ai_onnx_ml_label_encoder_string_int_.*"), + ("ERROR:", "string can't be used as model input type", r"test_ai_onnx_ml_label_encoder_string_int_no_default_.*"), + ("ERROR:", "string can't be used as model input type", r"test_ai_onnx_ml_label_encoder_tensor_mapping_.*"), + ("ERROR:", "string can't be used as model input type", r"test_ai_onnx_ml_label_encoder_tensor_value_only_mapping_.*"), + ("ERROR:", "string can't be used as model input type", r"test_cast_STRING_to_FLOAT_.*"), + ("ERROR:", "string can't be used as model input type", r"test_castlike_FLOAT_to_STRING_.*"), + ("ERROR:", "string can't be used as model input type", r"test_castlike_FLOAT_to_STRING_expanded_.*"), + ("ERROR:", "string can't be used as model input type", r"test_castlike_STRING_to_FLOAT_.*"), + ("ERROR:", "string can't be used as model input type", r"test_castlike_STRING_to_FLOAT_expanded_.*"), + ("ERROR:", "string can't be used as model input type", r"test_equal_string_.*"), + ("ERROR:", "string can't be used as model input type", r"test_equal_string_broadcast_.*"), + ("ERROR:", "string can't be used as model input type", r"test_regex_full_match_basic_.*"), + ("ERROR:", "string can't be used as model input type", r"test_regex_full_match_email_domain_.*"), + ("ERROR:", "string can't be used as model input type", r"test_regex_full_match_empty_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_concat_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_concat_broadcasting_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_concat_empty_string_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_concat_utf8_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_concat_zero_dimensional_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_split_basic_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_split_consecutive_delimiters_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_split_empty_string_delimiter_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_split_empty_tensor_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_split_maxsplit_.*"), + ("ERROR:", "string can't be used as model input type", r"test_string_split_no_delimiter_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnorm_model_monday_casesensintive_lower_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnorm_model_monday_casesensintive_nochangecase_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnorm_model_monday_casesensintive_upper_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnorm_model_monday_empty_output_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnorm_model_monday_insensintive_upper_twodim_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnorm_model_nostopwords_nochangecase_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnormalizer_export_monday_casesensintive_lower_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnormalizer_export_monday_casesensintive_nochangecase_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnormalizer_export_monday_casesensintive_upper_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnormalizer_export_monday_empty_output_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnormalizer_export_monday_insensintive_upper_twodim_.*"), + ("ERROR:", "string can't be used as model input type", r"test_strnormalizer_nostopwords_nochangecase_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT4E2M1_to_FLOAT16_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT4E2M1_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E4M3FNUZ_to_FLOAT16_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E4M3FNUZ_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E4M3FN_to_FLOAT16_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E4M3FN_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E5M2FNUZ_to_FLOAT16_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E5M2FNUZ_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E5M2_to_FLOAT16_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_FLOAT8E5M2_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_INT4_to_FLOAT16_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_INT4_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_INT4_to_INT8_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_UINT4_to_FLOAT16_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_UINT4_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_cast_UINT4_to_UINT8_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E4M3FNUZ_to_FLOAT_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E4M3FN_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E4M3FN_to_FLOAT_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E5M2FNUZ_to_FLOAT_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E5M2_to_FLOAT_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT8E5M2_to_FLOAT_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E4M3FNUZ_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E4M3FN_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E4M3FN_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E5M2FNUZ_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E5M2_.*"), + ("ERROR:", "unexpected model input type", r"test_castlike_FLOAT_to_FLOAT8E5M2_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_dequantizelinear_e4m3fn_.*"), + ("ERROR:", "unexpected model input type", r"test_dequantizelinear_e4m3fn_float16_.*"), + ("ERROR:", "unexpected model input type", r"test_dequantizelinear_e4m3fn_zero_point_.*"), + ("ERROR:", "unexpected model input type", r"test_dequantizelinear_e5m2_.*"), + ("ERROR:", "unexpected model input type", r"test_dequantizelinear_float4e2m1_.*"), + ("ERROR:", "unexpected model input type", r"test_dequantizelinear_int4_.*"), + ("ERROR:", "unexpected model input type", r"test_dequantizelinear_uint4_.*"), + ("ERROR:", "unexpected model input type", r"test_identity_opt_.*"), + ("ERROR:", "unexpected model input type", r"test_identity_sequence_.*"), + ("ERROR:", "unexpected model input type", r"test_loop13_seq_.*"), + ("ERROR:", "unexpected model input type", r"test_loop16_seq_none_.*"), + ("ERROR:", "unexpected model input type", r"test_optional_get_element_optional_sequence_.*"), + ("ERROR:", "unexpected model input type", r"test_optional_get_element_optional_tensor_.*"), + ("ERROR:", "unexpected model input type", r"test_optional_get_element_sequence_.*"), + ("ERROR:", "unexpected model input type", r"test_optional_has_element_empty_optional_input_.*"), + ("ERROR:", "unexpected model input type", r"test_optional_has_element_optional_input_.*"), + ("ERROR:", "unexpected model input type", r"test_optional_has_element_tensor_input_.*"), + ("ERROR:", "unexpected model input type", r"test_quantizelinear_e4m3fn_.*"), + ("ERROR:", "unexpected model input type", r"test_quantizelinear_e5m2_.*"), + ("ERROR:", "unexpected model input type", r"test_quantizelinear_float4e2m1_.*"), + ("ERROR:", "unexpected model input type", r"test_quantizelinear_int4_.*"), + ("ERROR:", "unexpected model input type", r"test_quantizelinear_uint4_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_insert_at_back_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_insert_at_front_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_add_1_sequence_1_tensor_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_add_1_sequence_1_tensor_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_add_2_sequences_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_add_2_sequences_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_extract_shapes_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_extract_shapes_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_identity_1_sequence_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_identity_1_sequence_1_tensor_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_identity_1_sequence_1_tensor_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_identity_1_sequence_expanded_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_identity_2_sequences_.*"), + ("ERROR:", "unexpected model input type", r"test_sequence_map_identity_2_sequences_expanded_.*"), + ("ERROR:", "unordered_map::at: key not found", r"test_gru_batchwise_.*"), + ("ERROR:", "unordered_map::at: key not found", r"test_simple_rnn_batchwise_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_0_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_0_expanded_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_0_expanded_ver18_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_1_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_1_expanded_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_1_expanded_ver18_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_2_expanded_.*"), + ("FAIL:", "", r"test_logsoftmax_axis_2_expanded_ver18_.*"), + ("FAIL:", "", r"test_logsoftmax_default_axis_.*"), + ("FAIL:", "", r"test_logsoftmax_default_axis_expanded_.*"), + ("FAIL:", "", r"test_logsoftmax_default_axis_expanded_ver18_.*"), + ("FAIL:", "", r"test_logsoftmax_large_number_expanded_.*"), + ("FAIL:", "", r"test_logsoftmax_large_number_expanded_ver18_.*"), + ("FAIL:", "", r"test_logsoftmax_negative_axis_expanded_.*"), + ("FAIL:", "", r"test_logsoftmax_negative_axis_expanded_ver18_.*"), + ("FAIL:", "", r"test_size_.*"), + ("FAIL:", "", r"test_size_example_.*"), + ("FAIL:", "", r"test_softmax_axis_0_.*"), + ("FAIL:", "", r"test_softmax_axis_0_expanded_.*"), + ("FAIL:", "", r"test_softmax_axis_0_expanded_ver18_.*"), + ("FAIL:", "", r"test_softmax_axis_1_.*"), + ("FAIL:", "", r"test_softmax_axis_1_expanded_.*"), + ("FAIL:", "", r"test_softmax_axis_1_expanded_ver18_.*"), + ("FAIL:", "", r"test_softmax_axis_2_expanded_.*"), + ("FAIL:", "", r"test_softmax_axis_2_expanded_ver18_.*"), + ("FAIL:", "", r"test_softmax_default_axis_.*"), + ("FAIL:", "", r"test_softmax_default_axis_expanded_.*"), + ("FAIL:", "", r"test_softmax_default_axis_expanded_ver18_.*"), + ("FAIL:", "", r"test_softmax_large_number_expanded_.*"), + ("FAIL:", "", r"test_softmax_large_number_expanded_ver18_.*"), + ("FAIL:", "", r"test_softmax_negative_axis_expanded_.*"), + ("FAIL:", "", r"test_softmax_negative_axis_expanded_ver18_.*"), + ("FAIL:", "[False False True False True True] != [False False False False False False]", r"test_isinf_.*"), + ("FAIL:", "[False False True False False True] != [False False False False False False]", r"test_isinf_positive_.*"), + ("FAIL:", "[False False False False True False] != [False False False False False False]", r"test_isinf_negative_.*"), +] +# fmt: on diff --git a/apps/onnx/halide_as_onnx_backend_test.py b/apps/onnx/halide_as_onnx_backend_test.py index 6b8597b2c49c..202bc4ec0bdb 100644 --- a/apps/onnx/halide_as_onnx_backend_test.py +++ b/apps/onnx/halide_as_onnx_backend_test.py @@ -1,69 +1,38 @@ import unittest + import onnx.backend.test + import halide_as_onnx_backend as halide_backend +import halide_as_onnx_backend_failures_table + # This is a pytest magic variable to load extra plugins # pytest_plugins = 'onnx.backend.test.report', -backend_test = onnx.backend.test.BackendTest(halide_backend, __name__) -exclude_test_patterns = ( - r"(test_hardsigmoid" # Does not support Hardsigmoid. - "|test_hardmax" # Does not support Hardmax. - "|test_depthtospace.*" # Does not support DepthToSpace. - "|test_.*pool_with_argmax.*" # argmax not yet supported - "|test_.*pool.*same.*" # same padding not yet supported - "|test_.*unpool.*" # unpool not yet supported - "|test_.*convtranspose.*" # Not supported yet - "|test_.*ConvTranspose.*" # Not supported yet - "|test_.*Conv.*_dilated.*" # Not supported yet - "|test_maxpool.*dilation.*" # MaxPool doesn't support dilation yet - "|test_.*mvn.*" # MeanVarianceNormalization is not supported. - "|test_.*pool.*ceil.*" # ceil mode is not supported yet - "|test_.*like.*" # Needs implementation - "|test_.*instancenorm.*" # not supported yet - "|test_reshape.*" - "|test_shrink.*" - "|test_tile.*" - "|test_dynamic_slice.*" # not supported yet - "|test_arg.*" # not supported yet - "|test_top.*" # not supported yet - "|test_resize.*" # opset 10 is not supported yet - "|test_compress_.*" # not supported yet - "|test_nonzero.*" # not supported yet - "|test_tfidfvectorizer.*" # not supported yet - "|test_cast_FLOAT_to_STRING.*" # not supported yet - "|test_cast_STRING_to_FLOAT.*" # not supported yet - "|test_.*scatter.*" # not supported yet - "|test_.*upsample.*" # not supported yet - "|test_.*qlinear.*" # skip quantized op test - "|test_.*quantize.*" # skip quantized op test - "|test_.*matmulinteger.*" # skip quantized op test - "|test_.*convinteger.*" # skip quantized op test - "|test_mod_.*" # not supported yet - "|test_cumsum_.*" # not supported yet - "|test_bitshift_.*" # not supported yet - "|test_nonmaxsuppression.*" # not supported yet - "|test_reversesequence.*" # not supported yet - "|test_roialign.*" # not supported yet - "|test_round.*" # not supported yet - "|test_scan.*" # Scan not supported yet - "|test_strnorm.*" # not supported yet - "|test_.*index.*" # Indexing not supported - "|test_.*chunk.*" # chunk not supported - "|test_operator_symbolic_override.*" # InstanceNormalization not supported yet - "|test_.*FLOAT16*" # FLOAT16 not supported yet - "|test_densenet.*" # Times out - "|test_inception_v2.*" # Padding type not supported for pooling - ")" -) +def main(): + backend_test = onnx.backend.test.BackendTest(halide_backend, __name__) + # These tests are simply too slow. + backend_test.exclude(r"test_densenet121_.*") + backend_test.exclude(r"test_inception_v1_.*") + backend_test.exclude(r"test_inception_v2_.*") + backend_test.exclude(r"test_resnet50_.*") + backend_test.exclude(r"test_squeezenet_.*") + backend_test.exclude(r"test_vgg19_.*") + backend_test.exclude(r"test_zfnet512_.*") -backend_test.exclude(exclude_test_patterns) + exclude_patterns = getattr( + halide_as_onnx_backend_failures_table, "HALIDE_ONNX_KNOWN_TEST_FAILURES", [] + ) + for _, _, pattern in exclude_patterns: + backend_test.exclude(pattern) -# import all test cases at global scope to make them visible to python.unittest -globals().update(backend_test.enable_report().test_cases) + # import all test cases at global scope to make them visible to python.unittest + globals().update(backend_test.enable_report().test_cases) + + unittest.main() if __name__ == "__main__": - unittest.main() + main() diff --git a/apps/onnx/update_failures_table.sh b/apps/onnx/update_failures_table.sh new file mode 100755 index 000000000000..f630d3448b65 --- /dev/null +++ b/apps/onnx/update_failures_table.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +set -exo pipefail + +if [ ! -d "$PWD/build" ]; then + echo "Must have built ONNX in build/" + exit 1 +fi + +export PYTHONPATH=$PWD/build +export PYTHONUNBUFFERED=1 + +MODEL_AUTOSCHEDULER="$(python -c "import halide; print(halide.install_dir())")/lib/libautoschedule_adams2019.so" +export MODEL_AUTOSCHEDULER + +OUTFILE="halide_as_onnx_backend_failures_table.py" + +rm -f "$OUTFILE" +echo "" > "$OUTFILE" + +( + echo "# -+-+- THIS FILE WAS GENERATED BY update_failures_table.sh DO NOT EDIT -+-+- #" + echo "# fmt: off" + echo "HALIDE_ONNX_KNOWN_TEST_FAILURES = [" + python halide_as_onnx_backend_test.py 2>&1 \ + | awk ' + /^(ERROR|FAIL): test_/ { + fail_type = $1 + # Extract test name, remove _cpu suffix and replace with _.* + match($0, /test_[a-zA-Z0-9_]+/) + test_name = substr($0, RSTART, RLENGTH) + gsub(/_cpu$/, "_.*", test_name) + } + /^[A-Za-z][A-Za-z0-9]*Error: / { + # Extract error message + sub(/^[A-Za-z][A-Za-z0-9]*Error: /, "", $0) + error_msg = $0 + print " (\"" fail_type "\", \"" error_msg "\", r\"" test_name "\")," + fflush() + }' \ + | sort || true + echo "]" + echo "# fmt: on" +) > "$OUTFILE.tmp" + +mv "$OUTFILE.tmp" "$OUTFILE"