filters for arm
This commit is contained in:
parent
e69866d09b
commit
6f17159022
@ -22,7 +22,8 @@ endif()
|
||||
if(NOT (ARM OR AARCH64))
|
||||
list(APPEND EXCLUDED_SOURCE_PATHS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/single_layer_tests/instances/arm
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subgraph_tests/src/arm)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subgraph_tests/src/arm
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/arm)
|
||||
else()
|
||||
# temporary disable all custom tests for ARM
|
||||
list(APPEND EXCLUDED_SOURCE_PATHS
|
||||
@ -41,7 +42,8 @@ endif()
|
||||
if(NOT X86_64)
|
||||
list(APPEND EXCLUDED_SOURCE_PATHS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/single_layer_tests/instances/x64
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subgraph_tests/src/x64)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/subgraph_tests/src/x64
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/x64)
|
||||
endif()
|
||||
|
||||
addIeTargetTest(
|
||||
|
@ -68,7 +68,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Planar_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Planar_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_acl_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_acl_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -78,72 +78,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Planar_FP32, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Planar_2D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_acl_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
/* ============= Deconvolution (Planar 3D) ============= */
|
||||
const std::vector<DeconvInputData> Planar_3D_inputs_smoke = {
|
||||
DeconvInputData{
|
||||
InputShape{{}, {{ 2, 12, 7, 7, 7 }}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{}
|
||||
},
|
||||
DeconvInputData{
|
||||
InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}},
|
||||
ngraph::helpers::InputLayerType::PARAMETER,
|
||||
{{15, 15, 15}, {9, 10, 10}, {9, 9, 9}}
|
||||
}
|
||||
};
|
||||
|
||||
const std::vector<DeconvInputData> Planar_3D_inputs_nightly = {
|
||||
DeconvInputData{
|
||||
// -1 will result deconv use 64 to infer output shape, for 3d output shape is too big for gemm bwd kernel
|
||||
// to buffer the intermedia results
|
||||
InputShape{{-1, 12, {5, 9}, {4, 7}, {7, 9}}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{}
|
||||
},
|
||||
DeconvInputData{
|
||||
InputShape{{-1, 12, -1, -1, -1}, {{ 2, 12, 7, 7, 7}, { 2, 12, 5, 7, 7}, { 1, 12, 9, 4, 9}, { 2, 12, 7, 7, 7}}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{{10, 16, 16}}
|
||||
},
|
||||
DeconvInputData{
|
||||
InputShape{{{1, 10}, 12, 7, 7, 7}, {{ 2, 12, 7, 7, 7}, { 1, 12, 7, 7, 7}, { 3, 12, 7, 7, 7}}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{{15, 15, 15}}
|
||||
}
|
||||
};
|
||||
|
||||
const auto convParams_ExplicitPadding_Planar_3D = ::testing::Combine(
|
||||
::testing::ValuesIn(kernels3d),
|
||||
::testing::ValuesIn(strides3d),
|
||||
::testing::ValuesIn(padBegins3d),
|
||||
::testing::ValuesIn(padEnds3d),
|
||||
::testing::ValuesIn(dilations3d),
|
||||
::testing::ValuesIn(numOutChannels_Planar),
|
||||
::testing::Values(ngraph::op::PadType::EXPLICIT),
|
||||
::testing::ValuesIn(emptyOutputPadding)
|
||||
);
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Planar_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::Combine(
|
||||
convParams_ExplicitPadding_Planar_3D,
|
||||
::testing::ValuesIn(Planar_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_ref_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Planar_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::Combine(
|
||||
convParams_ExplicitPadding_Planar_3D,
|
||||
::testing::ValuesIn(Planar_3D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_ref_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_acl_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -221,7 +156,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Blocked_FP32, DeconvolutionLayerCPUTest
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -231,7 +166,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_NSPC_INT8_AMX, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::i8),
|
||||
::testing::ValuesIn({emptyFusingSpec, fusingClampRoundAddRelu}),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_nspc_amx})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D_nspc_amx})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -241,92 +176,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Blocked_FP32, DeconvolutionLayerCPUTe
|
||||
::testing::ValuesIn(Blocked_2D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
/* ============= Deconvolution (Blocked 3D) ============= */
|
||||
const std::vector<DeconvInputData> Blocked_3D_inputs_smoke = {
|
||||
DeconvInputData{
|
||||
InputShape{{}, {{ 2, 35, 7, 7, 7 }}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{}
|
||||
},
|
||||
DeconvInputData{
|
||||
InputShape{{-1, 35, -1, -1, -1}, {{ 1, 35, 5, 5, 5}, { 2, 35, 5, 7, 5}}},
|
||||
ngraph::helpers::InputLayerType::PARAMETER,
|
||||
{{7, 7, 7}, {7, 9, 7}}
|
||||
}
|
||||
};
|
||||
|
||||
const auto convParams_ExplicitPadding_Blocked_3D_nightly = ::testing::Combine(
|
||||
::testing::ValuesIn(kernels3d),
|
||||
::testing::ValuesIn({strides3d[0]}),
|
||||
::testing::ValuesIn(padBegins3d),
|
||||
::testing::ValuesIn(padEnds3d),
|
||||
::testing::ValuesIn(dilations3d),
|
||||
::testing::Values(32),
|
||||
::testing::Values(ngraph::op::PadType::EXPLICIT),
|
||||
::testing::ValuesIn(emptyOutputPadding)
|
||||
);
|
||||
|
||||
const std::vector<DeconvInputData> Blocked_3D_inputs_nightly = {
|
||||
DeconvInputData{
|
||||
InputShape{{-1, 35, -1, -1, -1}, {{ 1, 35, 5, 5, 5}, { 2, 35, 5, 7, 5}, { 1, 35, 5, 5, 5}}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{}
|
||||
},
|
||||
DeconvInputData{
|
||||
InputShape{{-1, 35, -1, -1, -1}, {{ 1, 35, 5, 5, 5}, { 2, 35, 5, 7, 5}}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{{7, 7, 7}}
|
||||
},
|
||||
DeconvInputData{
|
||||
InputShape{{{1, 10}, 35, 5, 5, 5}, {{ 1, 35, 5, 5, 5}, { 2, 35, 5, 5, 5}}},
|
||||
ngraph::helpers::InputLayerType::CONSTANT,
|
||||
{{7, 7, 7}}
|
||||
}
|
||||
};
|
||||
|
||||
const auto convParams_ExplicitPadding_Blocked_3D = ::testing::Combine(
|
||||
::testing::ValuesIn(kernels3d),
|
||||
::testing::ValuesIn(strides3d),
|
||||
::testing::ValuesIn(padBegins3d),
|
||||
::testing::ValuesIn(padEnds3d),
|
||||
::testing::ValuesIn(dilations3d),
|
||||
::testing::Values(32),
|
||||
::testing::Values(ngraph::op::PadType::EXPLICIT),
|
||||
::testing::ValuesIn(emptyOutputPadding)
|
||||
);
|
||||
|
||||
const auto convParams_ExplicitPadding_AMX_3D = ::testing::Combine(
|
||||
::testing::ValuesIn(deconvAmxKernels3d),
|
||||
::testing::ValuesIn(deconvAmxStrides3d),
|
||||
::testing::ValuesIn(padBegins3d),
|
||||
::testing::ValuesIn(padEnds3d),
|
||||
::testing::ValuesIn(dilations3d),
|
||||
::testing::Values(32),
|
||||
::testing::Values(ngraph::op::PadType::EXPLICIT),
|
||||
::testing::ValuesIn(emptyOutputPadding)
|
||||
);
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Blocked_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::Combine(
|
||||
convParams_ExplicitPadding_Blocked_3D,
|
||||
::testing::ValuesIn(Blocked_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_ref_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Blocked_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::Combine(
|
||||
convParams_ExplicitPadding_Blocked_3D_nightly,
|
||||
::testing::ValuesIn(Blocked_3D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_ref_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -348,7 +198,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_1x1_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1, conv_avx2_2D_1x1})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D_1x1, conv_avx2_2D_1x1})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -368,7 +218,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_reorder_Deconv_2D, DeconvolutionLayerCPUTest,
|
||||
{{15, 15}, {9, 9}, {9, 10}, {15, 15}, {9, 9}}}),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::Values(emptyFusingSpec),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -413,7 +263,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_AutoPadding_FP32, DeconvolutionLayerCPU
|
||||
::testing::ValuesIn(inputs_2D_AutoPadding),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::Values(emptyFusingSpec),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_acl_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_acl_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -433,26 +283,5 @@ const std::vector<DeconvInputData> inputs_3D_AutoPadding = {
|
||||
},
|
||||
};
|
||||
|
||||
const auto deconvParams_AutoPadding_3D = ::testing::Combine(
|
||||
::testing::Values(kernels3d[0]),
|
||||
::testing::Values(strides3d[1]),
|
||||
::testing::ValuesIn(padBegins3d),
|
||||
::testing::ValuesIn(padEnds3d),
|
||||
::testing::ValuesIn(dilations3d),
|
||||
::testing::Values(1),
|
||||
::testing::Values(ngraph::op::PadType::SAME_UPPER, ngraph::op::PadType::SAME_LOWER),
|
||||
::testing::ValuesIn(emptyOutputPadding)
|
||||
);
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_AutoPadding_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::Combine(
|
||||
deconvParams_AutoPadding_3D,
|
||||
::testing::ValuesIn(inputs_3D_AutoPadding),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::Values(emptyFusingSpec),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_ref_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
} // namespace Deconvolution
|
||||
} // namespace CPULayerTestsDefinitions
|
||||
|
@ -69,7 +69,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Planar_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Planar_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -79,7 +79,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Planar_BF16, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Planar_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_2D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -89,7 +89,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Planar_FP32, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Planar_2D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -99,7 +99,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Planar_BF16, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Planar_2D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_2D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -154,7 +154,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Planar_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Planar_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -164,7 +164,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Planar_BF16, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Planar_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_3D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -174,7 +174,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Planar_FP32, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Planar_3D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -184,7 +184,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Planar_BF16, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Planar_3D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_3D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -262,7 +262,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Blocked_FP32, DeconvolutionLayerCPUTest
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -272,7 +272,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_Blocked_BF16, DeconvolutionLayerCPUTest
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -282,7 +282,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_NSPC_BF16_AMX_NO_FUSING, DeconvolutionL
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn({emptyFusingSpec}),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_nspc_amx})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D_nspc_amx})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -292,7 +292,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_NSPC_INT8_AMX, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::i8),
|
||||
::testing::ValuesIn({emptyFusingSpec, fusingClampRoundAddRelu}),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_nspc_amx})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D_nspc_amx})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -302,7 +302,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Blocked_FP32, DeconvolutionLayerCPUTe
|
||||
::testing::ValuesIn(Blocked_2D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D, conv_avx2_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -312,7 +312,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_2D_Blocked_BF16, DeconvolutionLayerCPUTe
|
||||
::testing::ValuesIn(Blocked_2D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -387,7 +387,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Blocked_FP32, DeconvolutionLayerCPUTest
|
||||
::testing::ValuesIn(Blocked_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -397,7 +397,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_Blocked_BF16, DeconvolutionLayerCPUTest
|
||||
::testing::ValuesIn(Blocked_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_3D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -408,7 +408,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_NSPC_BF16_AMX_NO_FUSING, DeconvolutionL
|
||||
::testing::ValuesIn(Blocked_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn({emptyFusingSpec}),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D_nspc_amx})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_3D_nspc_amx})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -418,7 +418,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_NSPC_INT8_AMX, DeconvolutionLayerCPUTes
|
||||
::testing::ValuesIn(Blocked_3D_inputs_smoke),
|
||||
::testing::Values(ElementType::i8),
|
||||
::testing::ValuesIn({emptyFusingSpec, fusingClampRoundAddRelu}),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D_nspc_amx})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_3D_nspc_amx})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -428,7 +428,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Blocked_FP32, DeconvolutionLayerCPUTe
|
||||
::testing::ValuesIn(Blocked_3D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -438,7 +438,7 @@ INSTANTIATE_TEST_SUITE_P(nightly_Deconv_3D_Blocked_BF16, DeconvolutionLayerCPUTe
|
||||
::testing::ValuesIn(Blocked_3D_inputs_nightly),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_3D})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -460,7 +460,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_1x1_FP32, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1, conv_avx2_2D_1x1})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D_1x1, conv_avx2_2D_1x1})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -470,7 +470,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_1x1_BF16, DeconvolutionLayerCPUTest,
|
||||
::testing::ValuesIn(Blocked_2D_inputs_smoke),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::ValuesIn(fusingParamsSet),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_1x1, conv_avx2_2D_1x1})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D_1x1, conv_avx2_2D_1x1})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -490,7 +490,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_reorder_Deconv_2D, DeconvolutionLayerCPUTest,
|
||||
{{15, 15}, {9, 9}, {9, 10}, {15, 15}, {9, 9}}}),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::Values(emptyFusingSpec),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -535,7 +535,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_AutoPadding_FP32, DeconvolutionLayerCPU
|
||||
::testing::ValuesIn(inputs_2D_AutoPadding),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::Values(emptyFusingSpec),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_2D, conv_avx512_2D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_2D, conv_avx512_2D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -572,7 +572,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_AutoPadding_FP32, DeconvolutionLayerCPU
|
||||
::testing::ValuesIn(inputs_3D_AutoPadding),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::Values(emptyFusingSpec),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_gemm_3D, conv_avx512_3D})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_gemm_3D, conv_avx512_3D})),
|
||||
::testing::Values(CPUTestUtils::cpuEmptyPluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
@ -599,7 +599,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_AutoPadding_AMX_BF16, DeconvolutionLaye
|
||||
::testing::Values(inputs_2D_AutoPadding_AMX),
|
||||
::testing::Values(ElementType::f32),
|
||||
::testing::Values(emptyFusingSpec),
|
||||
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_nspc_brgconv_amx})),
|
||||
::testing::ValuesIn(filterCPUInfo({conv_avx512_2D_nspc_brgconv_amx})),
|
||||
::testing::Values(cpuBF16PluginConfig)),
|
||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
||||
|
||||
|
@ -40,6 +40,17 @@ if(DEFINED ENABLE_CPU_SUBSET_TESTS_PATH)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/fusing_test_utils.cpp
|
||||
${CPU_SUBSET_TEST_ABS_PATH})
|
||||
|
||||
message(FATAL_ERROR ${X86_64})
|
||||
if(X86_64)
|
||||
message(FATAL_ERROR "248")
|
||||
list(APPEND REQUIRED_OBJECT_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/x64/filter_cpu_info.cpp)
|
||||
elseif(ARM OR AARCH64)
|
||||
message(FATAL_ERROR "123")
|
||||
list(APPEND REQUIRED_OBJECT_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/arm/filter_cpu_info.cpp)
|
||||
endif()
|
||||
|
||||
addIeTargetTest(
|
||||
NAME ${SUBSET_TARGET_NAME}
|
||||
ROOT ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
|
@ -17,6 +17,17 @@ function(create_target_per_test_for_directory TEST_DIR TARGET_PREFIX)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/fusing_test_utils.cpp
|
||||
)
|
||||
|
||||
message(FATAL_ERROR ${X86_64})
|
||||
if(X86_64)
|
||||
message(FATAL_ERROR "248")
|
||||
list(APPEND REQUIRED_OBJECT_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/x64/filter_cpu_info.cpp)
|
||||
elseif(ARM OR AARCH64)
|
||||
message(FATAL_ERROR "123")
|
||||
list(APPEND REQUIRED_OBJECT_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_utils/arm/filter_cpu_info.cpp)
|
||||
endif()
|
||||
|
||||
file(GLOB LIST_OF_TEST_FILES ${TEST_DIR}/*.cpp)
|
||||
# create targed for each test file in directory
|
||||
foreach(TEST_FILE ${LIST_OF_TEST_FILES})
|
||||
|
@ -0,0 +1,42 @@
|
||||
// Copyright (C) 2018-2023 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
#include "test_utils/cpu_test_utils.hpp"
|
||||
#include "test_utils/filter_cpu_info.hpp"
|
||||
#include "ie_ngraph_utils.hpp"
|
||||
#include "openvino/core/type/element_type.hpp"
|
||||
#include "utils/rt_info/memory_formats_attribute.hpp"
|
||||
#include "utils/general_utils.h"
|
||||
#include <cstdint>
|
||||
|
||||
namespace CPUTestUtils {
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfo(const std::vector<CPUSpecificParams>& CPUParams) {
|
||||
std::vector<CPUSpecificParams> archCPUParams = filterCPUInfoForArch(CPUParams);
|
||||
std::vector<CPUSpecificParams> deviceCPUParams = filterCPUInfoForDevice(archCPUParams);
|
||||
return deviceCPUParams;
|
||||
}
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForArch(const std::vector<CPUSpecificParams>& CPUParams) {
|
||||
std::vector<CPUSpecificParams> resCPUParams;
|
||||
const int selectedTypeIndex = 3;
|
||||
|
||||
for (auto param : CPUParams) {
|
||||
auto selectedTypeStr = std::get<selectedTypeIndex>(param);
|
||||
|
||||
if (selectedTypeStr.find("acl") == std::string::npos &&
|
||||
selectedTypeStr.find("ref") == std::string::npos)
|
||||
continue;
|
||||
|
||||
resCPUParams.push_back(param);
|
||||
}
|
||||
|
||||
return resCPUParams;
|
||||
}
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForDevice(const std::vector<CPUSpecificParams>& CPUParams) {
|
||||
return CPUParams;
|
||||
}
|
||||
|
||||
} // namespace CPUTestUtils
|
@ -451,29 +451,4 @@ void CheckNumberOfNodesWithType(InferenceEngine::ExecutableNetwork &execNet, con
|
||||
CheckNumberOfNodesWithTypes(execNet, {nodeType}, expectedCount);
|
||||
}
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForDevice(const std::vector<CPUSpecificParams>& CPUParams) {
|
||||
std::vector<CPUSpecificParams> resCPUParams;
|
||||
const int selectedTypeIndex = 3;
|
||||
|
||||
for (auto param : CPUParams) {
|
||||
auto selectedTypeStr = std::get<selectedTypeIndex>(param);
|
||||
|
||||
if (selectedTypeStr.find("jit") != std::string::npos && !InferenceEngine::with_cpu_x86_sse42())
|
||||
continue;
|
||||
if (selectedTypeStr.find("sse42") != std::string::npos && !InferenceEngine::with_cpu_x86_sse42())
|
||||
continue;
|
||||
if (selectedTypeStr.find("avx") != std::string::npos && !InferenceEngine::with_cpu_x86_avx())
|
||||
continue;
|
||||
if (selectedTypeStr.find("avx2") != std::string::npos && !InferenceEngine::with_cpu_x86_avx2())
|
||||
continue;
|
||||
if (selectedTypeStr.find("avx512") != std::string::npos && !InferenceEngine::with_cpu_x86_avx512f())
|
||||
continue;
|
||||
if (selectedTypeStr.find("amx") != std::string::npos && !InferenceEngine::with_cpu_x86_avx512_core_amx())
|
||||
continue;
|
||||
|
||||
resCPUParams.push_back(param);
|
||||
}
|
||||
|
||||
return resCPUParams;
|
||||
}
|
||||
} // namespace CPUTestUtils
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "filter_cpu_info.hpp"
|
||||
#include <string>
|
||||
#include "ie_system_conf.h"
|
||||
#include "shared_test_classes/base/layer_test_utils.hpp"
|
||||
@ -13,84 +14,6 @@
|
||||
#include "ie_system_conf.h"
|
||||
|
||||
namespace CPUTestUtils {
|
||||
typedef enum {
|
||||
undef,
|
||||
a,
|
||||
ab,
|
||||
acb,
|
||||
aBc8b,
|
||||
aBc16b,
|
||||
abcd,
|
||||
acdb,
|
||||
aBcd8b,
|
||||
aBcd16b,
|
||||
abcde,
|
||||
acdeb,
|
||||
aBcde8b,
|
||||
aBcde16b,
|
||||
// RNN layouts
|
||||
abc,
|
||||
bac,
|
||||
abdc,
|
||||
abdec,
|
||||
|
||||
x = a,
|
||||
nc = ab,
|
||||
ncw = abc,
|
||||
nchw = abcd,
|
||||
ncdhw = abcde,
|
||||
nwc = acb,
|
||||
nhwc = acdb,
|
||||
ndhwc = acdeb,
|
||||
nCw8c = aBc8b,
|
||||
nCw16c = aBc16b,
|
||||
nChw8c = aBcd8b,
|
||||
nChw16c = aBcd16b,
|
||||
nCdhw8c = aBcde8b,
|
||||
nCdhw16c = aBcde16b,
|
||||
// RNN layouts
|
||||
tnc = abc,
|
||||
/// 3D RNN data tensor in the format (batch, seq_length, input channels).
|
||||
ntc = bac,
|
||||
/// 4D RNN states tensor in the format (num_layers, num_directions,
|
||||
/// batch, state channels).
|
||||
ldnc = abcd,
|
||||
/// 5D RNN weights tensor in the format (num_layers, num_directions,
|
||||
/// input_channels, num_gates, output_channels).
|
||||
///
|
||||
/// - For LSTM cells, the gates order is input, forget, candidate
|
||||
/// and output gate.
|
||||
/// - For GRU cells, the gates order is update, reset and output gate.
|
||||
ldigo = abcde,
|
||||
/// 5D RNN weights tensor in the format (num_layers, num_directions,
|
||||
/// num_gates, output_channels, input_channels).
|
||||
///
|
||||
/// - For LSTM cells, the gates order is input, forget, candidate
|
||||
/// and output gate.
|
||||
/// - For GRU cells, the gates order is update, reset and output gate.
|
||||
ldgoi = abdec,
|
||||
/// 4D LSTM projection tensor in the format (num_layers, num_directions,
|
||||
/// num_channels_in_hidden_state, num_channels_in_recurrent_projection).
|
||||
ldio = abcd,
|
||||
/// 4D LSTM projection tensor in the format (num_layers, num_directions,
|
||||
/// num_channels_in_recurrent_projection, num_channels_in_hidden_state).
|
||||
ldoi = abdc,
|
||||
/// 4D RNN bias tensor in the format (num_layers, num_directions,
|
||||
/// num_gates, output_channels).
|
||||
///
|
||||
/// - For LSTM cells, the gates order is input, forget, candidate
|
||||
/// and output gate.
|
||||
/// - For GRU cells, the gates order is update, reset and output gate.
|
||||
ldgo = abcd,
|
||||
} cpu_memory_format_t;
|
||||
|
||||
using CPUSpecificParams = std::tuple<
|
||||
std::vector<cpu_memory_format_t>, // input memomry format
|
||||
std::vector<cpu_memory_format_t>, // output memory format
|
||||
std::vector<std::string>, // priority
|
||||
std::string // selected primitive type
|
||||
>;
|
||||
|
||||
enum class nodeType {
|
||||
convolution,
|
||||
convolutionBackpropData,
|
||||
@ -178,7 +101,6 @@ const std::map<std::string, std::string> cpuBF16PluginConfig =
|
||||
|
||||
// utility functions
|
||||
std::vector<CPUSpecificParams> filterCPUSpecificParams(const std::vector<CPUSpecificParams>& paramsVector);
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForDevice(const std::vector<CPUSpecificParams>& CPUParams);
|
||||
void CheckNumberOfNodesWithType(const ov::CompiledModel &compiledModel, const std::string& nodeType, size_t expectedCount);
|
||||
void CheckNumberOfNodesWithType(InferenceEngine::ExecutableNetwork &execNet, const std::string& nodeType, size_t expectedCount);
|
||||
void CheckNumberOfNodesWithTypes(const ov::CompiledModel &compiledModel, const std::unordered_set<std::string>& nodeTypes, size_t expectedCount);
|
||||
|
@ -0,0 +1,92 @@
|
||||
// Copyright (C) 2023 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
namespace CPUTestUtils {
|
||||
typedef enum {
|
||||
undef,
|
||||
a,
|
||||
ab,
|
||||
acb,
|
||||
aBc8b,
|
||||
aBc16b,
|
||||
abcd,
|
||||
acdb,
|
||||
aBcd8b,
|
||||
aBcd16b,
|
||||
abcde,
|
||||
acdeb,
|
||||
aBcde8b,
|
||||
aBcde16b,
|
||||
// RNN layouts
|
||||
abc,
|
||||
bac,
|
||||
abdc,
|
||||
abdec,
|
||||
|
||||
x = a,
|
||||
nc = ab,
|
||||
ncw = abc,
|
||||
nchw = abcd,
|
||||
ncdhw = abcde,
|
||||
nwc = acb,
|
||||
nhwc = acdb,
|
||||
ndhwc = acdeb,
|
||||
nCw8c = aBc8b,
|
||||
nCw16c = aBc16b,
|
||||
nChw8c = aBcd8b,
|
||||
nChw16c = aBcd16b,
|
||||
nCdhw8c = aBcde8b,
|
||||
nCdhw16c = aBcde16b,
|
||||
// RNN layouts
|
||||
tnc = abc,
|
||||
/// 3D RNN data tensor in the format (batch, seq_length, input channels).
|
||||
ntc = bac,
|
||||
/// 4D RNN states tensor in the format (num_layers, num_directions,
|
||||
/// batch, state channels).
|
||||
ldnc = abcd,
|
||||
/// 5D RNN weights tensor in the format (num_layers, num_directions,
|
||||
/// input_channels, num_gates, output_channels).
|
||||
///
|
||||
/// - For LSTM cells, the gates order is input, forget, candidate
|
||||
/// and output gate.
|
||||
/// - For GRU cells, the gates order is update, reset and output gate.
|
||||
ldigo = abcde,
|
||||
/// 5D RNN weights tensor in the format (num_layers, num_directions,
|
||||
/// num_gates, output_channels, input_channels).
|
||||
///
|
||||
/// - For LSTM cells, the gates order is input, forget, candidate
|
||||
/// and output gate.
|
||||
/// - For GRU cells, the gates order is update, reset and output gate.
|
||||
ldgoi = abdec,
|
||||
/// 4D LSTM projection tensor in the format (num_layers, num_directions,
|
||||
/// num_channels_in_hidden_state, num_channels_in_recurrent_projection).
|
||||
ldio = abcd,
|
||||
/// 4D LSTM projection tensor in the format (num_layers, num_directions,
|
||||
/// num_channels_in_recurrent_projection, num_channels_in_hidden_state).
|
||||
ldoi = abdc,
|
||||
/// 4D RNN bias tensor in the format (num_layers, num_directions,
|
||||
/// num_gates, output_channels).
|
||||
///
|
||||
/// - For LSTM cells, the gates order is input, forget, candidate
|
||||
/// and output gate.
|
||||
/// - For GRU cells, the gates order is update, reset and output gate.
|
||||
ldgo = abcd,
|
||||
} cpu_memory_format_t;
|
||||
|
||||
using CPUSpecificParams = std::tuple<
|
||||
std::vector<cpu_memory_format_t>, // input memomry format
|
||||
std::vector<cpu_memory_format_t>, // output memory format
|
||||
std::vector<std::string>, // priority
|
||||
std::string // selected primitive type
|
||||
>;
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfo(const std::vector<CPUSpecificParams>& CPUParams);
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForArch(const std::vector<CPUSpecificParams>& CPUParams);
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForDevice(const std::vector<CPUSpecificParams>& CPUParams);
|
||||
} // namespace CPUTestUtils
|
@ -0,0 +1,63 @@
|
||||
// Copyright (C) 2018-2023 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
#include "test_utils/cpu_test_utils.hpp"
|
||||
#include "test_utils/filter_cpu_info.hpp"
|
||||
#include "ie_ngraph_utils.hpp"
|
||||
#include "openvino/core/type/element_type.hpp"
|
||||
#include "utils/rt_info/memory_formats_attribute.hpp"
|
||||
#include "utils/general_utils.h"
|
||||
#include <cstdint>
|
||||
|
||||
namespace CPUTestUtils {
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfo(const std::vector<CPUSpecificParams>& CPUParams) {
|
||||
std::vector<CPUSpecificParams> archCPUParams = filterCPUInfoForArch(CPUParams);
|
||||
std::vector<CPUSpecificParams> deviceCPUParams = filterCPUInfoForDevice(archCPUParams);
|
||||
return deviceCPUParams;
|
||||
}
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForArch(const std::vector<CPUSpecificParams>& CPUParams) {
|
||||
std::vector<CPUSpecificParams> resCPUParams;
|
||||
const int selectedTypeIndex = 3;
|
||||
|
||||
for (auto param : CPUParams) {
|
||||
auto selectedTypeStr = std::get<selectedTypeIndex>(param);
|
||||
|
||||
if (selectedTypeStr.find("acl") != std::string::npos)
|
||||
continue;
|
||||
|
||||
resCPUParams.push_back(param);
|
||||
}
|
||||
|
||||
return resCPUParams;
|
||||
}
|
||||
|
||||
std::vector<CPUSpecificParams> filterCPUInfoForDevice(const std::vector<CPUSpecificParams>& CPUParams) {
|
||||
std::vector<CPUSpecificParams> resCPUParams;
|
||||
const int selectedTypeIndex = 3;
|
||||
|
||||
for (auto param : CPUParams) {
|
||||
auto selectedTypeStr = std::get<selectedTypeIndex>(param);
|
||||
|
||||
if (selectedTypeStr.find("jit") != std::string::npos && !InferenceEngine::with_cpu_x86_sse42())
|
||||
continue;
|
||||
if (selectedTypeStr.find("sse42") != std::string::npos && !InferenceEngine::with_cpu_x86_sse42())
|
||||
continue;
|
||||
if (selectedTypeStr.find("avx") != std::string::npos && !InferenceEngine::with_cpu_x86_avx())
|
||||
continue;
|
||||
if (selectedTypeStr.find("avx2") != std::string::npos && !InferenceEngine::with_cpu_x86_avx2())
|
||||
continue;
|
||||
if (selectedTypeStr.find("avx512") != std::string::npos && !InferenceEngine::with_cpu_x86_avx512f())
|
||||
continue;
|
||||
if (selectedTypeStr.find("amx") != std::string::npos && !InferenceEngine::with_cpu_x86_avx512_core_amx())
|
||||
continue;
|
||||
|
||||
resCPUParams.push_back(param);
|
||||
}
|
||||
|
||||
return resCPUParams;
|
||||
}
|
||||
|
||||
} // namespace CPUTestUtils
|
Loading…
Reference in New Issue
Block a user