parent
1f9b2c2ba6
commit
ea3a37b1ba
File diff suppressed because it is too large
Load Diff
@ -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 {};
|
||||
|
@ -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 {};
|
||||
|
@ -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>{
|
||||
|
@ -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 } });
|
||||
|
@ -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";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user