[GPU] Refactor ConvertColorNV12, ConvolutionBackprop, Convolution (#20376)

* ConvertColorNV12

* ConvolutionBackprop

* Convolution

* fix after review
This commit is contained in:
Andrei Gorbachev 2023-10-24 08:38:23 +01:00 committed by GitHub
parent 5853509b3c
commit ea6922386e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 96 additions and 108 deletions

View File

@ -4,12 +4,11 @@
#include <vector>
#include "single_layer_tests/convert_color_nv12.hpp"
#include "single_op_tests/convert_color_nv12.hpp"
#include "common_test_utils/test_constants.hpp"
using namespace LayerTestsDefinitions;
namespace {
using ov::test::ConvertColorNV12LayerTest;
const std::vector<ov::Shape> inShapes_nhwc = {
{1, 10, 10, 1}
@ -20,27 +19,60 @@ const std::vector<ov::element::Type> inTypes = {
ov::element::f32
};
INSTANTIATE_TEST_SUITE_P(smoke_TestsConvertColorNV12,
auto generate_input_static_shapes = [] (const std::vector<ov::Shape>& original_shapes, bool single_plane) {
std::vector<std::vector<ov::Shape>> result_shapes;
for (const auto& original_shape : original_shapes) {
std::vector<ov::Shape> one_result_shapes;
if (single_plane) {
auto shape = original_shape;
shape[1] = shape[1] * 3 / 2;
one_result_shapes.push_back(shape);
} else {
auto shape = original_shape;
one_result_shapes.push_back(shape);
auto uvShape = ov::Shape{shape[0], shape[1] / 2, shape[2] / 2, 2};
one_result_shapes.push_back(uvShape);
}
result_shapes.push_back(one_result_shapes);
}
return result_shapes;
};
auto in_shapes_single_plane_static = generate_input_static_shapes(inShapes_nhwc, true);
auto in_shapes_two_planes_static = generate_input_static_shapes(inShapes_nhwc, false);
INSTANTIATE_TEST_SUITE_P(smoke_TestsConvertColorNV12SinglePlane,
ConvertColorNV12LayerTest,
::testing::Combine(::testing::ValuesIn(inShapes_nhwc),
::testing::Combine(::testing::ValuesIn(ov::test::static_shapes_to_test_representation(in_shapes_single_plane_static)),
::testing::ValuesIn(inTypes),
::testing::Bool(),
::testing::Bool(),
::testing::Values(true),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvertColorNV12LayerTest::getTestCaseName);
INSTANTIATE_TEST_SUITE_P(smoke_TestsConvertColorNV12_acc,
ConvertColorNV12AccuracyTest,
::testing::Combine(::testing::Values(ov::Shape{1, 16 * 6, 16, 1}),
INSTANTIATE_TEST_SUITE_P(smoke_TestsConvertColorNV12TwoPlane,
ConvertColorNV12LayerTest,
::testing::Combine(::testing::ValuesIn(ov::test::static_shapes_to_test_representation(in_shapes_two_planes_static)),
::testing::ValuesIn(inTypes),
::testing::Bool(),
::testing::Values(false),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvertColorNV12LayerTest::getTestCaseName);
INSTANTIATE_TEST_SUITE_P(smoke_TestsConvertColorNV12SinglePlane_acc,
ConvertColorNV12LayerTest,
::testing::Combine(::testing::ValuesIn(ov::test::static_shapes_to_test_representation(
generate_input_static_shapes({{1, 16 * 6, 16, 1}}, true))),
::testing::Values(ov::element::u8),
::testing::Bool(),
::testing::Bool(),
::testing::Values(false),
::testing::Values(true),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvertColorNV12LayerTest::getTestCaseName);
INSTANTIATE_TEST_SUITE_P(nightly_TestsConvertColorNV12_acc,
ConvertColorNV12AccuracyTest,
::testing::Combine(::testing::Values(ov::Shape{1, 256 * 256, 256, 1}),
INSTANTIATE_TEST_SUITE_P(nightly_TestsConvertColorNV12SinglePlane_acc,
ConvertColorNV12LayerTest,
::testing::Combine(::testing::ValuesIn(ov::test::static_shapes_to_test_representation(
generate_input_static_shapes({{1, 256 * 256, 256, 1}}, true))),
::testing::Values(ov::element::u8),
::testing::Values(false),
::testing::Values(true),

View File

@ -4,15 +4,14 @@
#include <vector>
#include "single_layer_tests/convolution.hpp"
#include "single_op_tests/convolution.hpp"
#include "common_test_utils/test_constants.hpp"
using namespace LayerTestsDefinitions;
namespace {
const std::vector<InferenceEngine::Precision> netPrecisions = {
InferenceEngine::Precision::FP32,
InferenceEngine::Precision::FP16
using ov::test::ConvolutionLayerTest;
const std::vector<ov::element::Type> netPrecisions = {
ov::element::f32,
ov::element::f16
};
/* ============= 2D Convolution ============= */
@ -27,9 +26,9 @@ const std::vector<std::vector<ptrdiff_t>> padEnds = {{0, 0},
const std::vector<std::vector<size_t >> dilations = {{1, 1},
{3, 1}};
const std::vector<size_t> numOutChannels = {1, 5};
const std::vector<ngraph::op::PadType> padTypes = {
ngraph::op::PadType::EXPLICIT,
ngraph::op::PadType::VALID
const std::vector<ov::op::PadType> padTypes = {
ov::op::PadType::EXPLICIT,
ov::op::PadType::VALID
};
const auto conv2DParams_ExplicitPadding = ::testing::Combine(
::testing::ValuesIn(kernels),
@ -38,7 +37,7 @@ const auto conv2DParams_ExplicitPadding = ::testing::Combine(
::testing::ValuesIn(padEnds),
::testing::ValuesIn(dilations),
::testing::ValuesIn(numOutChannels),
::testing::Values(ngraph::op::PadType::EXPLICIT)
::testing::Values(ov::op::PadType::EXPLICIT)
);
const auto conv2DParams_AutoPadValid = ::testing::Combine(
::testing::ValuesIn(kernels),
@ -54,11 +53,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Convolution2D_ExplicitPadding, ConvolutionLayerTe
::testing::Combine(
conv2DParams_ExplicitPadding,
::testing::ValuesIn(netPrecisions),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(std::vector<size_t >({1, 3, 30, 30})),
::testing::Values(ov::test::static_shapes_to_test_representation({{1, 3, 30, 30}})),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionLayerTest::getTestCaseName);
@ -66,11 +61,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Convolution2D_AutoPadValid, ConvolutionLayerTest,
::testing::Combine(
conv2DParams_AutoPadValid,
::testing::ValuesIn(netPrecisions),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(std::vector<size_t >({1, 3, 30, 30})),
::testing::Values(ov::test::static_shapes_to_test_representation({{1, 3, 30, 30}})),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionLayerTest::getTestCaseName);
/* ============= 3D Convolution ============= */
@ -94,18 +85,14 @@ const auto conv3DParams = ::testing::Combine(
::testing::ValuesIn(paddings3d),
::testing::ValuesIn(dilations3d),
::testing::ValuesIn(numOutChannels3d),
::testing::Values(ngraph::op::PadType::EXPLICIT)
::testing::Values(ov::op::PadType::EXPLICIT)
);
INSTANTIATE_TEST_SUITE_P(smoke_Convolution3D_Basic1, ConvolutionLayerTest,
::testing::Combine(
conv3DParams,
::testing::ValuesIn(netPrecisions),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(std::vector<size_t >({1, 3, 10, 10, 10})),
::testing::Values(ov::test::static_shapes_to_test_representation({{1, 3, 10, 10, 10}})),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionLayerTest::getTestCaseName);
} // namespace

View File

@ -4,32 +4,32 @@
#include <vector>
#include "single_layer_tests/convolution_backprop_data.hpp"
#include "single_op_tests/convolution_backprop_data.hpp"
#include "common_test_utils/test_constants.hpp"
using namespace LayerTestsDefinitions;
namespace {
using ov::test::ConvolutionBackpropDataLayerTest;
using ov::test::convBackpropDataLayerTestParamsSet;
const std::vector<InferenceEngine::Precision> netPrecisions = {
InferenceEngine::Precision::FP32,
InferenceEngine::Precision::FP16
const std::vector<ov::element::Type> netPrecisions = {
ov::element::f32,
ov::element::f16
};
const std::vector<size_t> numOutChannels = {1, 5, 16};
const std::vector<std::vector<size_t >> emptyOutputShape = {{}};
const std::vector<ov::Shape> emptyOutputShape = {{}};
const std::vector<std::vector<ptrdiff_t>> emptyOutputPadding = {{}};
/* ============= 2D ConvolutionBackpropData ============= */
const std::vector<InferenceEngine::Precision> netPrecisions2D = {
InferenceEngine::Precision::FP32,
InferenceEngine::Precision::FP16
const std::vector<ov::element::Type> netPrecisions2D = {
ov::element::f32,
ov::element::f16
};
const std::vector<std::vector<size_t >> inputShapes2D = {{1, 3, 30, 30},
{1, 16, 10, 10},
{1, 32, 10, 10}};
const std::vector<std::vector<size_t >> kernels2D = {{1, 1}, {3, 3}, {3, 5}};
const std::vector<std::vector<ov::Shape>> inputShapes2D = {{{1, 3, 30, 30}},
{{1, 16, 10, 10}},
{{1, 32, 10, 10}}};
const std::vector<std::vector<size_t >> kernels2D = {/*{1, 1},*/ {3, 3}, {3, 5}};
const std::vector<std::vector<size_t >> strides2D = {{1, 3}};
const std::vector<std::vector<ptrdiff_t>> padBegins2D = {{0, 0}};
const std::vector<std::vector<ptrdiff_t>> padEnds2D = {{0, 0}, {1, 1}};
@ -42,7 +42,7 @@ const auto conv2DParams_ExplicitPadding = ::testing::Combine(
::testing::ValuesIn(padEnds2D),
::testing::ValuesIn(dilations2D),
::testing::ValuesIn(numOutChannels),
::testing::Values(ngraph::op::PadType::EXPLICIT),
::testing::Values(ov::op::PadType::EXPLICIT),
::testing::ValuesIn(emptyOutputPadding)
);
const auto conv2DParams_AutoPadValid = ::testing::Combine(
@ -52,7 +52,7 @@ const auto conv2DParams_AutoPadValid = ::testing::Combine(
::testing::Values(std::vector<ptrdiff_t>({0, 0})),
::testing::ValuesIn(dilations2D),
::testing::ValuesIn(numOutChannels),
::testing::Values(ngraph::op::PadType::VALID),
::testing::Values(ov::op::PadType::VALID),
::testing::ValuesIn(emptyOutputPadding)
);
@ -60,11 +60,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData2D_ExplicitPadding, Convol
::testing::Combine(
conv2DParams_ExplicitPadding,
::testing::ValuesIn(netPrecisions2D),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes2D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes2D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);
@ -73,11 +69,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData2D_AutoPadValid, Convoluti
::testing::Combine(
conv2DParams_AutoPadValid,
::testing::ValuesIn(netPrecisions2D),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes2D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes2D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);
@ -92,7 +84,7 @@ const auto conv2DParams_ExplicitPadding_output_padding = ::testing::Combine(
::testing::ValuesIn(padEnds2D),
::testing::ValuesIn(dilations2D),
::testing::ValuesIn(numOutChannels),
::testing::Values(ngraph::op::PadType::EXPLICIT),
::testing::Values(ov::op::PadType::EXPLICIT),
::testing::ValuesIn(outputPadding2D)
);
const auto conv2DParams_AutoPadValid_output_padding = ::testing::Combine(
@ -102,7 +94,7 @@ const auto conv2DParams_AutoPadValid_output_padding = ::testing::Combine(
::testing::Values(std::vector<ptrdiff_t>({0, 0})),
::testing::ValuesIn(dilations2D),
::testing::ValuesIn(numOutChannels),
::testing::Values(ngraph::op::PadType::VALID),
::testing::Values(ov::op::PadType::VALID),
::testing::ValuesIn(outputPadding2D)
);
@ -110,11 +102,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData2D_ExplicitPadding_OutputP
::testing::Combine(
conv2DParams_AutoPadValid_output_padding,
::testing::ValuesIn(netPrecisions),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes2D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes2D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);
@ -123,27 +111,24 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData2D_AutoPadding_OutputPaddi
::testing::Combine(
conv2DParams_ExplicitPadding_output_padding,
::testing::ValuesIn(netPrecisions),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes2D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes2D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);
/* ============= 3D ConvolutionBackpropData ============= */
const std::vector<InferenceEngine::Precision> netPrecisions3D = {
InferenceEngine::Precision::FP32,
const std::vector<ov::element::Type> netPrecisions3D = {
ov::element::f32,
};
const std::vector<std::vector<size_t >> inputShapes3D = {{1, 3, 10, 10, 10},
{1, 16, 5, 5, 5},
{1, 32, 5, 5, 5}};
const std::vector<std::vector<size_t >> kernels3D = {{1, 1, 1}, {3, 3, 3}};
const std::vector<std::vector<size_t >> strides3D = {{1, 1, 1}};
const std::vector<std::vector<ov::Shape>> inputShapes3D = {{{1, 3, 10, 10, 10}},
{{1, 16, 5, 5, 5}},
{{1, 32, 5, 5, 5}}};
const std::vector<std::vector<size_t>> kernels3D = {/*{1, 1, 1}, */{3, 3, 3}};
const std::vector<std::vector<size_t>> strides3D = {{1, 1, 1}};
const std::vector<std::vector<ptrdiff_t>> padBegins3D = {{0, 0, 0}};
const std::vector<std::vector<ptrdiff_t>> padEnds3D = {{0, 0, 0}, {1, 1, 1}};
const std::vector<std::vector<size_t >> dilations3D = {{1, 1, 1}};
const std::vector<std::vector<size_t>> dilations3D = {{1, 1, 1}};
const auto conv3DParams_ExplicitPadding = ::testing::Combine(
::testing::ValuesIn(kernels3D),
@ -170,11 +155,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData3D_ExplicitPadding, Convol
::testing::Combine(
conv3DParams_ExplicitPadding,
::testing::ValuesIn(netPrecisions3D),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes3D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes3D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);
@ -183,11 +164,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData3D_AutoPadValid, Convoluti
::testing::Combine(
conv3DParams_AutoPadValid,
::testing::ValuesIn(netPrecisions3D),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes3D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes3D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);
@ -202,7 +179,7 @@ const auto conv3DParams_ExplicitPadding_output_padding = ::testing::Combine(
::testing::ValuesIn(padEnds3D),
::testing::ValuesIn(dilations3D),
::testing::ValuesIn(numOutChannels),
::testing::Values(ngraph::op::PadType::EXPLICIT),
::testing::Values(ov::op::PadType::EXPLICIT),
::testing::ValuesIn(outputPadding3D)
);
const auto conv3DParams_AutoPadValid_output_padding = ::testing::Combine(
@ -212,7 +189,7 @@ const auto conv3DParams_AutoPadValid_output_padding = ::testing::Combine(
::testing::Values(std::vector<ptrdiff_t>({0, 0, 0})),
::testing::ValuesIn(dilations3D),
::testing::ValuesIn(numOutChannels),
::testing::Values(ngraph::op::PadType::VALID),
::testing::Values(ov::op::PadType::VALID),
::testing::ValuesIn(outputPadding3D)
);
@ -220,11 +197,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData3D_ExplicitPadding_OutputP
::testing::Combine(
conv3DParams_AutoPadValid_output_padding,
::testing::ValuesIn(netPrecisions),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes3D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes3D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);
@ -233,11 +206,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_ConvolutionBackpropData3D_AutoPadding_OutputPaddi
::testing::Combine(
conv3DParams_ExplicitPadding_output_padding,
::testing::ValuesIn(netPrecisions),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Precision::UNSPECIFIED),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::Values(InferenceEngine::Layout::ANY),
::testing::ValuesIn(inputShapes3D),
::testing::ValuesIn(ov::test::static_shapes_to_test_representation(inputShapes3D)),
::testing::ValuesIn(emptyOutputShape),
::testing::Values(ov::test::utils::DEVICE_GPU)),
ConvolutionBackpropDataLayerTest::getTestCaseName);