[GPU][DG2] Fix some unit tests (#14413)

* update default_tolerance
This commit is contained in:
Felix Dohyun Kim 2022-12-28 16:10:39 +09:00 committed by GitHub
parent 1f9b2c2ba6
commit ea3a37b1ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 830 additions and 844 deletions

File diff suppressed because it is too large Load Diff

View File

@ -34,27 +34,6 @@ struct deconv_test_params {
size_t expected_fused_primitives;
size_t expected_fused_primitives_onednn;
size_t expected_not_fused_primitives;
bool operator<(const deconv_test_params& o)const {
auto to_tuple = [](const deconv_test_params& p) {
return make_tuple(p.in_shape,
p.out_shape,
p.kernel,
p.stride,
p.pad,
p.dilation,
p.groups,
static_cast<size_t>(p.data_type),
p.input_format,
static_cast<size_t>(p.weights_type),
p.weights_format,
static_cast<size_t>(p.default_type),
p.default_format,
p.expected_fused_primitives,
p.expected_fused_primitives_onednn,
p.expected_not_fused_primitives);
};
return to_tuple(*this)<to_tuple(o);
}
};
struct deconv_eltw_test_params {
@ -80,10 +59,12 @@ struct deconv_eltw_test_params {
class DeconvolutionFusingTest : public ::BaseFusingTest<deconv_test_params> {
public:
void execute(deconv_test_params& p) {
execute(p, get_mem(get_input_layout(p)));
}
void execute(deconv_test_params& p, cldnn::memory::ptr input_prim) {
if (engine.get_device_info().supports_immad)
p.expected_fused_primitives = p.expected_fused_primitives_onednn;
auto input_prim = get_mem(get_input_layout(p));
network network_not_fused(this->engine, this->topology_non_fused, bo_not_fused);
network network_fused(this->engine, this->topology_fused, bo_fused);
network_fused.set_input_data("input", input_prim);
@ -398,30 +379,30 @@ TEST_P(deconv_scale, basic) {
auto p = GetParam();
create_topologies(
input_layout("input", get_input_layout(p)),
data("weights", get_mem(get_weights_layout(p))),
data("weights", get_mem(get_weights_layout(p), -4, 4)),
data("scale_data", get_mem(get_per_channel_layout(p), 1.0f/p.kernel.count())),
deconvolution("deconv", input_info("input"), { "weights" }, p.groups, p.stride, p.pad),
eltwise("scale", { input_info("deconv"), input_info("scale_data") }, eltwise_mode::prod),
reorder("out", input_info("scale"), p.default_format, data_types::f32)
);
tolerance = 1e-5f;
execute(p);
tolerance = default_tolerance(p.data_type);
execute(p, get_mem(get_input_layout(p), 0, 16));
}
TEST_P(deconv_scale, fp16_scale_out) {
auto p = GetParam();
create_topologies(
input_layout("input", get_input_layout(p)),
data("weights", get_mem(get_weights_layout(p))),
data("weights", get_mem(get_weights_layout(p), -4, 4)),
data("scale_data", get_mem(get_per_channel_layout(p), 1.0f/p.kernel.count())),
deconvolution("deconv", input_info("input"), { "weights" }, p.groups, p.stride, p.pad),
eltwise("scale", { input_info("deconv"), input_info("scale_data") }, eltwise_mode::prod, data_types::f16),
reorder("out", input_info("scale"), p.default_format, data_types::f32)
);
tolerance = 1e-5f;
execute(p);
tolerance = default_tolerance(p.data_type);
execute(p, get_mem(get_input_layout(p), 0, 16));
}
INSTANTIATE_TEST_SUITE_P(fusings_gpu, deconv_scale, ::testing::ValuesIn(std::vector<deconv_test_params>{
@ -584,81 +565,81 @@ TEST_P(deconv_scale_actv_quant_i8, basic) {
}
INSTANTIATE_TEST_SUITE_P(fusings_gpu, deconv_scale_actv_quant_i8, ::testing::ValuesIn(std::vector<deconv_test_params>{
deconv_test_params{ CASE_DECONV_FP32_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_4, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_4, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_8, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_4, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_4, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_8, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3, 2, 3, 5 },
// deconv_test_params{ CASE_DECONV_U8S8_4, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_8, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3, 2, 3, 5 },
// deconv_test_params{ CASE_DECONV_S8S8_4, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_8, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_4, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_3, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_4, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP32_3D_8, 2, 3, 5 },
// FIXME no quantize implementation for bs_fs_yx_bsv16_fsv16 format AND add_required_reorders pass completely ruins data types
// add_required_reorders pass tries to reorder everything to output type if no format exists, this ruins fp32 -> int8 quantize
//deconv_test_params{ CASE_DECONV_FP32_3D_9, 3, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_4, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_3, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_4, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_FP16_3D_8, 2, 3, 5 },
//deconv_test_params{ CASE_DECONV_FP16_3D_9, 3, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_4, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_3, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_4, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_U8S8_3D_8, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_1, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_2, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_3, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_4, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_5, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_6, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_7, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_8, 2, 2, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_1, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_2, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_3, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_4, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_5, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_6, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_7, 2, 3, 5 },
deconv_test_params{ CASE_DECONV_S8S8_3D_8, 2, 3, 5 },
}));
class deconv_scale_actv_quant_u8_eltw_scale_actv_quant_i8 : public DeconvolutionFusingTest {};

View File

@ -35,6 +35,8 @@ struct mvn_test_params {
class MVNFusingTest : public ::BaseFusingTest<mvn_test_params> {
public:
void execute(mvn_test_params& p) {
if (engine.get_device_info().supports_immad)
p.expected_fused_primitives = p.expected_fused_primitives_onednn;
auto input_prim = get_mem(get_input_layout(p));
network network_not_fused(this->engine, this->topology_non_fused, bo_not_fused);
@ -211,30 +213,30 @@ INSTANTIATE_TEST_SUITE_P(fusings_gpu, mvn_scale_activation_eltwise_fp32_quantize
// mvn_test_params{ CASE_MVN_F16_2, 2, 7 },
// mvn_test_params{ CASE_MVN_3D_F16_1, 2, 7 },
// mvn_test_params{ CASE_MVN_3D_F16_2, 2, 7 },
mvn_test_params{ CASE_MVN_I8_1, 2, 3, 6 },
mvn_test_params{ CASE_MVN_I8_2, 2, 3, 6 },
mvn_test_params{ CASE_MVN_I8_3, 2, 3, 6 },
mvn_test_params{ CASE_MVN_I8_4, 2, 3, 6 },
mvn_test_params{ CASE_MVN_I8_5, 2, 3, 6 },
mvn_test_params{ CASE_MVN_I8_6, 2, 3, 6 },
mvn_test_params{ CASE_MVN_I8_7, 3, 3, 6 },
mvn_test_params{ CASE_MVN_3D_I8_1, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_I8_2, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_I8_3, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_I8_4, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_I8_5, 3, 3, 6 },
mvn_test_params{ CASE_MVN_U8_1, 2, 3, 6 },
mvn_test_params{ CASE_MVN_U8_2, 2, 3, 6 },
mvn_test_params{ CASE_MVN_U8_3, 2, 3, 6 },
mvn_test_params{ CASE_MVN_U8_4, 2, 3, 6 },
mvn_test_params{ CASE_MVN_U8_5, 2, 3, 6 },
mvn_test_params{ CASE_MVN_U8_6, 2, 3, 6 },
mvn_test_params{ CASE_MVN_U8_7, 3, 3, 6 },
mvn_test_params{ CASE_MVN_3D_U8_1, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_U8_2, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_U8_3, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_U8_4, 2, 3, 6 },
mvn_test_params{ CASE_MVN_3D_U8_5, 3, 3, 6 },
mvn_test_params{ CASE_MVN_I8_1, 2, 4, 6 },
mvn_test_params{ CASE_MVN_I8_2, 2, 4, 6 },
mvn_test_params{ CASE_MVN_I8_3, 2, 4, 6 },
mvn_test_params{ CASE_MVN_I8_4, 2, 4, 6 },
mvn_test_params{ CASE_MVN_I8_5, 2, 4, 6 },
mvn_test_params{ CASE_MVN_I8_6, 2, 4, 6 },
mvn_test_params{ CASE_MVN_I8_7, 3, 4, 6 },
mvn_test_params{ CASE_MVN_3D_I8_1, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_I8_2, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_I8_3, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_I8_4, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_I8_5, 3, 4, 6 },
mvn_test_params{ CASE_MVN_U8_1, 2, 4, 6 },
mvn_test_params{ CASE_MVN_U8_2, 2, 4, 6 },
mvn_test_params{ CASE_MVN_U8_3, 2, 4, 6 },
mvn_test_params{ CASE_MVN_U8_4, 2, 4, 6 },
mvn_test_params{ CASE_MVN_U8_5, 2, 4, 6 },
mvn_test_params{ CASE_MVN_U8_6, 2, 4, 6 },
mvn_test_params{ CASE_MVN_U8_7, 3, 4, 6 },
mvn_test_params{ CASE_MVN_3D_U8_1, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_U8_2, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_U8_3, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_U8_4, 2, 4, 6 },
mvn_test_params{ CASE_MVN_3D_U8_5, 3, 4, 6 },
}));
class mvn_eltwise : public MVNFusingTest {};

View File

@ -33,6 +33,8 @@ struct pooling_test_params {
class PoolingFusingTest : public ::BaseFusingTest<pooling_test_params> {
public:
void execute(pooling_test_params& p) {
if (engine.get_device_info().supports_immad)
p.expected_fused_primitives = p.expected_fused_primitives_onednn;
auto input_prim = get_mem(get_input_layout(p));
build_options options;
options.set_option(build_option::optimize_data(true));
@ -313,7 +315,7 @@ TEST_P(pooling_scale_activation_quantize, per_channel) {
data("scale_data", get_mem(get_per_channel_layout(p), 1.0f / 16.0f)),
pooling("pooling", input_info("input"), p.pool_mode, kernel, stride, pads_begin, pads_end),
eltwise("scale", { input_info("pooling"), input_info("scale_data") }, eltwise_mode::prod, p.default_type),
activation("activation", input_info("scale"), activation_func::hyperbolic_tan),
activation("activation", input_info("scale"), activation_func::relu),
quantize("quantize", input_info("activation"), input_info("in_lo"), input_info("in_hi"),
input_info("out_lo"), input_info("out_hi"), 255, data_types::u8),
reorder("output_reorder", input_info("quantize"), p.default_format, data_types::f32)
@ -325,40 +327,40 @@ TEST_P(pooling_scale_activation_quantize, per_channel) {
INSTANTIATE_TEST_SUITE_P(fusings_gpu, pooling_scale_activation_quantize, ::testing::ValuesIn(std::vector<pooling_test_params>{
// Input type: FP32
pooling_test_params{ CASE_POOLING_F32_3, 2, 3, 5, pooling_mode::average, "pooling_gpu_bfyx_block_opt" },
pooling_test_params{ CASE_POOLING_F32_3, 2, 3, 5, pooling_mode::max, "pooling_gpu_bfyx_block_opt" },
pooling_test_params{ CASE_POOLING_F32_3, 2, 3, 5, pooling_mode::average, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_3, 2, 3, 5, pooling_mode::max, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_4, 2, 3, 5, pooling_mode::average, "pooling_gpu_fs_b_yx_fsv32" },
pooling_test_params{ CASE_POOLING_F32_4, 2, 3, 5, pooling_mode::max, "pooling_gpu_fs_b_yx_fsv32" },
pooling_test_params{ CASE_POOLING_F32_5, 2, 3, 5, pooling_mode::average, "pooling_gpu_byxf_padding_opt" },
pooling_test_params{ CASE_POOLING_F32_5, 2, 3, 5, pooling_mode::max, "pooling_gpu_byxf_padding_opt" },
pooling_test_params{ CASE_POOLING_F32_6, 2, 3, 5, pooling_mode::average, "pooling_gpu_byxf_opt" },
pooling_test_params{ CASE_POOLING_F32_6, 2, 3, 5, pooling_mode::max, "pooling_gpu_byxf_opt" },
pooling_test_params{ CASE_POOLING_F32_7, 2, 3, 5, pooling_mode::average, "pooling_gpu_bsv16_fsv16" },
pooling_test_params{ CASE_POOLING_F32_7, 2, 3, 5, pooling_mode::max, "pooling_gpu_bsv16_fsv16" },
pooling_test_params{ CASE_POOLING_F32_8, 2, 3, 5, pooling_mode::average, "pooling_gpu_blocked" },
pooling_test_params{ CASE_POOLING_F32_8, 2, 3, 5, pooling_mode::max, "pooling_gpu_blocked" },
pooling_test_params{ CASE_POOLING_F32_9, 2, 3, 5, pooling_mode::average, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_9, 2, 3, 5, pooling_mode::max, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_10, 2, 3, 5, pooling_mode::average, "pooling_gpu_bsv16_fsv16" },
pooling_test_params{ CASE_POOLING_F32_10, 2, 3, 5, pooling_mode::max, "pooling_gpu_bsv16_fsv16" },
pooling_test_params{ CASE_POOLING_F32_3, 2, 2, 5, pooling_mode::average, "pooling_gpu_bfyx_block_opt" },
pooling_test_params{ CASE_POOLING_F32_3, 2, 2, 5, pooling_mode::max, "pooling_gpu_bfyx_block_opt" },
pooling_test_params{ CASE_POOLING_F32_3, 2, 2, 5, pooling_mode::average, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_3, 2, 2, 5, pooling_mode::max, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_4, 2, 2, 5, pooling_mode::average, "pooling_gpu_fs_b_yx_fsv32" },
pooling_test_params{ CASE_POOLING_F32_4, 2, 2, 5, pooling_mode::max, "pooling_gpu_fs_b_yx_fsv32" },
pooling_test_params{ CASE_POOLING_F32_5, 2, 2, 5, pooling_mode::average, "pooling_gpu_byxf_padding_opt" },
pooling_test_params{ CASE_POOLING_F32_5, 2, 2, 5, pooling_mode::max, "pooling_gpu_byxf_padding_opt" },
pooling_test_params{ CASE_POOLING_F32_6, 2, 2, 5, pooling_mode::average, "pooling_gpu_byxf_opt" },
pooling_test_params{ CASE_POOLING_F32_6, 2, 2, 5, pooling_mode::max, "pooling_gpu_byxf_opt" },
pooling_test_params{ CASE_POOLING_F32_7, 2, 2, 5, pooling_mode::average, "pooling_gpu_bsv16_fsv16" },
pooling_test_params{ CASE_POOLING_F32_7, 2, 2, 5, pooling_mode::max, "pooling_gpu_bsv16_fsv16" },
pooling_test_params{ CASE_POOLING_F32_8, 2, 2, 5, pooling_mode::average, "pooling_gpu_blocked" },
pooling_test_params{ CASE_POOLING_F32_8, 2, 2, 5, pooling_mode::max, "pooling_gpu_blocked" },
pooling_test_params{ CASE_POOLING_F32_9, 2, 2, 5, pooling_mode::average, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_9, 2, 2, 5, pooling_mode::max, "pooling_gpu_ref" },
pooling_test_params{ CASE_POOLING_F32_10, 2, 2, 5, pooling_mode::average, "pooling_gpu_bsv16_fsv16" },
pooling_test_params{ CASE_POOLING_F32_10, 2, 2, 5, pooling_mode::max, "pooling_gpu_bsv16_fsv16" },
// Input type: INT8
pooling_test_params{ CASE_POOLING_I8_5, 2, 3, 5, pooling_mode::average, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_I8_5, 2, 3, 5, pooling_mode::max, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_I8_6, 2, 3, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_I8_6, 2, 3, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_I8_5, 2, 2, 5, pooling_mode::average, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_I8_5, 2, 2, 5, pooling_mode::max, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_I8_6, 2, 2, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_I8_6, 2, 2, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
// Input type: UINT8
pooling_test_params{ CASE_POOLING_U8_3, 2, 3, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_3, 2, 3, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_3, 2, 3, 5, pooling_mode::average, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_U8_3, 2, 3, 5, pooling_mode::max, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_U8_5, 2, 3, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_5, 2, 3, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_6, 2, 3, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_6, 2, 3, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_3, 2, 2, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_3, 2, 2, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_3, 2, 2, 5, pooling_mode::average, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_U8_3, 2, 2, 5, pooling_mode::max, "pooling_gpu_b_fs_yx_fsv4" },
pooling_test_params{ CASE_POOLING_U8_5, 2, 2, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_5, 2, 2, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_6, 2, 2, 5, pooling_mode::average, "pooling_gpu_int8_ref" },
pooling_test_params{ CASE_POOLING_U8_6, 2, 2, 5, pooling_mode::max, "pooling_gpu_int8_ref" },
}));
INSTANTIATE_TEST_SUITE_P(DISABLED_fusings_gpu, pooling_scale_activation_quantize, ::testing::ValuesIn(std::vector<pooling_test_params>{

View File

@ -180,6 +180,11 @@ class binary_convolution_test : public ::testing::TestWithParam<TestParams> {
TEST_P(binary_convolution_test, conv) {
auto& engine = get_test_engine();
// DG2 is not validated for binary convolution: https://github.com/openvinotoolkit/openvino/pull/12486
if(engine.get_device_info().supports_immad)
return;
cldnn::build_options options;
options.set_option(cldnn::build_option::optimize_data(true));
topology topology_bin;
@ -337,6 +342,9 @@ static void set_binary_values(cldnn::memory::ptr mem, std::vector<T> args) {
TEST(binary_convolution, basic_convolution_1x1_single_packed_channel) {
auto& engine = get_test_engine();
// DG2 is not validated for binary convolution: https://github.com/openvinotoolkit/openvino/pull/12486
if(engine.get_device_info().supports_immad)
return;
auto input = engine.allocate_memory({ data_types::bin, format::b_fs_yx_32fp, { 1, 16, 2, 2 } });
auto weights = engine.allocate_memory({ data_types::bin, format::bfyx, { 4, 16, 1, 1 } });
@ -420,6 +428,9 @@ TEST(binary_convolution, basic_convolution_1x1_single_packed_channel) {
TEST(binary_convolution, basic_convolution_1x1_single_packed_channel_fp16) {
auto& engine = get_test_engine();
// DG2 is not validated for binary convolution: https://github.com/openvinotoolkit/openvino/pull/12486
if(engine.get_device_info().supports_immad)
return;
auto input = engine.allocate_memory({ data_types::bin, format::b_fs_yx_32fp, { 1, 16, 2, 2 } });
auto weights = engine.allocate_memory({ data_types::bin, format::bfyx, { 4, 16, 1, 1 } });

View File

@ -393,7 +393,7 @@ double default_tolerance(data_types dt) {
return 1e-5;
case data_types::i8:
case data_types::u8:
return 1.;
return 1.5;
default:
IE_THROW() << "Unknown";
}