[CPU] Fix deconvolution default primitive search algo (#19261)

* Fix deconvolution default primitive search

* Add dedicated test
This commit is contained in:
Maksim Kutakov 2023-08-23 16:58:38 +02:00 committed by GitHub
parent c6a02b76be
commit 6a628f7056
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 5 deletions

View File

@ -991,18 +991,16 @@ void Deconvolution::prepareParams() {
key.stride, key.dilation, key.paddingL, key.paddingR, key.attr, engine);
}
auto anyDeconvItpd = anyDeconvDesc;
if (anyDeconvItpd) {
if (anyDeconvDesc) {
if (key.isInt8) {
auto prim_desc = deconvolution_forward::primitive_desc(itpd.get());
auto prim_desc = deconvolution_forward::primitive_desc(anyDeconvDesc.get());
execPtr = std::make_shared<DeconvExecutorInt8>(prim_desc,
key.inp0->getDnnlDesc(),
key.inp1->getDnnlDesc(),
key.out->getDnnlDesc(),
engine);
} else {
auto prim_desc = convolution_backward_data::primitive_desc(itpd.get());
auto prim_desc = convolution_backward_data::primitive_desc(anyDeconvDesc.get());
execPtr = std::make_shared<DeconvExecutorDefault>(prim_desc,
key.inp0->getDnnlDesc(),
key.inp1->getDnnlDesc(),

View File

@ -869,6 +869,33 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_AutoPadding_FP32, DeconvolutionLayerCPU
::testing::Values(cpuEmptyPluginConfig)),
DeconvolutionLayerCPUTest::getTestCaseName);
const auto deconvParams_AutoPadding_2D_AMX = ::testing::Combine(
::testing::ValuesIn(deconvAmxKernels2d),
::testing::ValuesIn(deconvAmxStrides2d),
::testing::ValuesIn(padBegins2d),
::testing::ValuesIn(padEnds2d),
::testing::ValuesIn(dilations2d),
::testing::Values(256),
::testing::Values(ngraph::op::PadType::SAME_UPPER, ngraph::op::PadType::SAME_LOWER),
::testing::ValuesIn(emptyOutputPadding)
);
const DeconvInputData inputs_2D_AutoPadding_AMX = {
InputShape{{-1, 512, -1, -1}, {{ 1, 512, 32, 51}, { 1, 512, 68, 101}}},
ngraph::helpers::InputLayerType::PARAMETER,
{{64, 101}, {135, 202}}
};
INSTANTIATE_TEST_SUITE_P(smoke_Deconv_2D_AutoPadding_AMX_BF16, DeconvolutionLayerCPUTest,
::testing::Combine(
deconvParams_AutoPadding_2D_AMX,
::testing::Values(inputs_2D_AutoPadding_AMX),
::testing::Values(ElementType::f32),
::testing::Values(emptyFusingSpec),
::testing::ValuesIn(filterCPUInfoForDevice({conv_avx512_2D_nspc_brgconv_amx})),
::testing::Values(cpuBF16PluginConfig)),
DeconvolutionLayerCPUTest::getTestCaseName);
} // namespace
} // namespace CPULayerTestsDefinitions