[CPU] Fix deconvolution default primitive search algo (#19261)
* Fix deconvolution default primitive search * Add dedicated test
This commit is contained in:
parent
c6a02b76be
commit
6a628f7056
@ -991,18 +991,16 @@ void Deconvolution::prepareParams() {
|
|||||||
key.stride, key.dilation, key.paddingL, key.paddingR, key.attr, engine);
|
key.stride, key.dilation, key.paddingL, key.paddingR, key.attr, engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto anyDeconvItpd = anyDeconvDesc;
|
if (anyDeconvDesc) {
|
||||||
|
|
||||||
if (anyDeconvItpd) {
|
|
||||||
if (key.isInt8) {
|
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,
|
execPtr = std::make_shared<DeconvExecutorInt8>(prim_desc,
|
||||||
key.inp0->getDnnlDesc(),
|
key.inp0->getDnnlDesc(),
|
||||||
key.inp1->getDnnlDesc(),
|
key.inp1->getDnnlDesc(),
|
||||||
key.out->getDnnlDesc(),
|
key.out->getDnnlDesc(),
|
||||||
engine);
|
engine);
|
||||||
} else {
|
} 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,
|
execPtr = std::make_shared<DeconvExecutorDefault>(prim_desc,
|
||||||
key.inp0->getDnnlDesc(),
|
key.inp0->getDnnlDesc(),
|
||||||
key.inp1->getDnnlDesc(),
|
key.inp1->getDnnlDesc(),
|
||||||
|
@ -869,6 +869,33 @@ INSTANTIATE_TEST_SUITE_P(smoke_Deconv_3D_AutoPadding_FP32, DeconvolutionLayerCPU
|
|||||||
::testing::Values(cpuEmptyPluginConfig)),
|
::testing::Values(cpuEmptyPluginConfig)),
|
||||||
DeconvolutionLayerCPUTest::getTestCaseName);
|
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
|
||||||
|
|
||||||
} // namespace CPULayerTestsDefinitions
|
} // namespace CPULayerTestsDefinitions
|
||||||
|
Loading…
Reference in New Issue
Block a user