From 3cccec91c097f1bebb555003304f522cd7a9f269 Mon Sep 17 00:00:00 2001 From: xuchen-intel Date: Fri, 24 May 2024 09:40:05 +0200 Subject: [PATCH] Add Mod for Snippets tokenization --- .../emitters/snippets/aarch64/cpu_generator.cpp | 1 + .../transformations/transformation_pipeline.cpp | 1 + .../single_layer_tests/classes/eltwise.cpp | 9 +++++++++ .../single_layer_tests/classes/eltwise.hpp | 1 + .../instances/common/eltwise.cpp | 17 +++++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/src/plugins/intel_cpu/src/emitters/snippets/aarch64/cpu_generator.cpp b/src/plugins/intel_cpu/src/emitters/snippets/aarch64/cpu_generator.cpp index 2db9ef88bb3..3838b4520d3 100644 --- a/src/plugins/intel_cpu/src/emitters/snippets/aarch64/cpu_generator.cpp +++ b/src/plugins/intel_cpu/src/emitters/snippets/aarch64/cpu_generator.cpp @@ -88,6 +88,7 @@ CPUTargetMachine::CPUTargetMachine(dnnl::impl::cpu::aarch64::cpu_isa_t host_isa) // binary jitters[op::v1::Add::get_type_info_static()] = CREATE_CPU_EMITTER(jit_add_emitter); jitters[op::v1::Divide::get_type_info_static()] = CREATE_CPU_EMITTER(jit_divide_emitter); + jitters[op::v1::Mod::get_type_info_static()] = CREATE_CPU_EMITTER(jit_mod_emitter); jitters[op::v1::Multiply::get_type_info_static()] = CREATE_CPU_EMITTER(jit_multiply_emitter); // unary diff --git a/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp b/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp index 664481dc1f0..57cfbe967dc 100644 --- a/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp +++ b/src/plugins/intel_cpu/src/transformations/transformation_pipeline.cpp @@ -952,6 +952,7 @@ void Transformations::MainSnippets(void) { ov::is_type(n) || ov::is_type(n) || ov::is_type(n) || + ov::is_type(n) || ov::is_type(n) || ov::is_type(n) || ov::is_type(n) || diff --git a/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.cpp b/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.cpp index 53ce67d890a..2378bf82ede 100644 --- a/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.cpp +++ b/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.cpp @@ -314,6 +314,15 @@ const std::vector& eltwiseOpTypesBinInp() { return eltwiseOpTypesBinInp; } +const std::vector& eltwiseOpTypesBinInpSnippets() { + static const std::vector eltwiseOpTypesBinInp = { + utils::EltwiseTypes::ADD, + utils::EltwiseTypes::MULTIPLY, + utils::EltwiseTypes::MOD, + }; + return eltwiseOpTypesBinInp; +} + const std::vector& eltwiseOpTypesDiffInp() { static const std::vector eltwiseOpTypesDiffInp = { // Different number of input nodes depending on optimizations utils::EltwiseTypes::POWER, diff --git a/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.hpp b/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.hpp index a80754f9294..7c2592e6f23 100644 --- a/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.hpp +++ b/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/classes/eltwise.hpp @@ -51,6 +51,7 @@ const std::vector& eltwiseOpTypesBinInp(); const std::vector& secondaryInputTypes(); const std::vector& eltwiseOpTypesBinInp(); +const std::vector& eltwiseOpTypesBinInpSnippets(); const std::vector& eltwiseOpTypesDiffInp(); const std::vector& eltwiseOpTypesBinDyn(); diff --git a/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/instances/common/eltwise.cpp b/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/instances/common/eltwise.cpp index e6e8168da5c..da82b9a12a8 100644 --- a/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/instances/common/eltwise.cpp +++ b/src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/instances/common/eltwise.cpp @@ -29,6 +29,23 @@ const auto params_4D = ::testing::Combine( INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_4D_MemOrder, EltwiseLayerCPUTest, params_4D, EltwiseLayerCPUTest::getTestCaseName); +const auto params_4D_Snippets = ::testing::Combine( + ::testing::Combine( + ::testing::ValuesIn(static_shapes_to_test_representation(inShapes_4D())), + ::testing::ValuesIn(eltwiseOpTypesBinInpSnippets()), + ::testing::ValuesIn(secondaryInputTypes()), + ::testing::ValuesIn(opTypes()), + ::testing::ValuesIn(netType()), + ::testing::Values(ov::element::undefined), + ::testing::Values(ov::element::undefined), + ::testing::Values(ov::test::utils::DEVICE_CPU), + ::testing::Values(additional_config()[0])), + ::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())), + ::testing::Values(emptyFusingSpec), + ::testing::Values(true)); + +INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_4D_MemOrder_Snippets, EltwiseLayerCPUTest, params_4D_Snippets, EltwiseLayerCPUTest::getTestCaseName); + const auto params_4D_emptyCPUSpec = ::testing::Combine( ::testing::Combine( ::testing::ValuesIn(static_shapes_to_test_representation(inShapes_4D())),