[GPU] Enable disabled network fro oneDNNv2.6-pc2 (#10226)

Some networks newly uses wtags in oneDNN.
Add g_os_is_yx_osa2_isa8_osv8_isv2

Signed-off-by: hyunback <hyunback.kim@intel.com>
This commit is contained in:
hyunback kim authored and GitHub committed 2022-02-10 18:13:33 +03:00
1 parent 50dffb80bb
commit efbfd957ff
9 files changed
+25

No files matched your search

@@ -216,6 +216,7 @@ struct format {
gi_yxs_os_yxsv2_osv16,
giy_xs_os_xsv2_osv8__ao32,
giy_xs_os_xsv2_osv16__ao32,
g_os_is_yx_osa2_isa8_osv8_isv2,
g_os_is_yx_osa4_isa8_osv8_isv4,
g_os_is_yx_osa4_isa8_osv8_isv2,
g_os_is_yx_osa2_isa8_osv16_isv2,
@@ -271,6 +271,7 @@ static cldnn::format convert_format(dnnl::memory::format_tag fmt, bool is_groupe
case dnnl::memory::format_tag::Abcde16a: return cldnn::format::gs_oiyx_gsv16;
case dnnl::memory::format_tag::Abcde32a: return cldnn::format::gs_oiyx_gsv32;
case dnnl::memory::format_tag::aCBde16c16b: return cldnn::format::g_is_os_yx_isv16_osv16;
case dnnl::memory::format_tag::aBCde2b8c8b2c: return cldnn::format::g_os_is_yx_osa2_isa8_osv8_isv2;
case dnnl::memory::format_tag::aBCde4b8c8b4c: return cldnn::format::g_os_is_yx_osa4_isa8_osv8_isv4;
case dnnl::memory::format_tag::aBCde4b8c8b2c: return cldnn::format::g_os_is_yx_osa4_isa8_osv8_isv2;
case dnnl::memory::format_tag::aBCd2b8c16b4c: return cldnn::format::g_os_is_yx_osa2_isa8_osv16_isv4;
@@ -258,6 +258,8 @@ kernel_selector::weights_layout to_weights_layout(format f, bool is_grouped) {
return kernel_selector::weights_layout::os_is_zyx_osa4_isa8_osv8_isv2;
case format::os_is_zyx_osa4_isa8_osv8_isv4:
return kernel_selector::weights_layout::os_is_zyx_osa4_isa8_osv8_isv4;
case format::g_os_is_yx_osa2_isa8_osv8_isv2:
return kernel_selector::weights_layout::g_os_is_yx_osa2_isa8_osv8_isv2;
case format::g_os_is_yx_osa4_isa8_osv8_isv2:
return kernel_selector::weights_layout::g_os_is_yx_osa4_isa8_osv8_isv2;
case format::g_os_is_yx_osa4_isa8_osv8_isv4:
@@ -456,6 +458,8 @@ cldnn::format::type from_weights_layout(kernel_selector::weights_layout l) {
return cldnn::format::os_is_zyx_osa4_isa8_osv8_isv2;
case kernel_selector::weights_layout::os_is_zyx_osa4_isa8_osv8_isv4:
return cldnn::format::os_is_zyx_osa4_isa8_osv8_isv4;
case kernel_selector::weights_layout::g_os_is_yx_osa2_isa8_osv8_isv2:
return cldnn::format::g_os_is_yx_osa2_isa8_osv8_isv2;
case kernel_selector::weights_layout::g_os_is_yx_osa4_isa8_osv8_isv2:
return cldnn::format::g_os_is_yx_osa4_isa8_osv8_isv2;
case kernel_selector::weights_layout::g_os_is_yx_osa4_isa8_osv8_isv4:
@@ -86,6 +86,7 @@ WeightsTensor::WeightsChannelArray WeightsTensor::weightsChannelArray {{
{ WeightsLayout::os_is_yx_isa8_osv16_isv4, { 0, 1, -1, 2, 3, -1 } },
{ WeightsLayout::os_is_yx_isa8_osv8_isv4_swizzled_by_4, { 0, 1, -1, 2, 3, -1 } },
{ WeightsLayout::os_is_yx_osa4_isa8_osv8_isv4, { 0, 1, -1, 2, 3, -1 } },
{ WeightsLayout::g_os_is_yx_osa2_isa8_osv8_isv2, { 0, 1, -1, 2, 3, 4 } },
{ WeightsLayout::g_os_is_yx_osa4_isa8_osv8_isv4, { 0, 1, -1, 2, 3, 4 } },
{ WeightsLayout::g_os_is_zyx_osa4_isa8_osv8_isv4, { 0, 1, 2, 3, 4, 5 } },
{ WeightsLayout::os_is_yx_osa4_isa8_osv8_isv2, { 0, 1, -1, 2, 3, -1 } },
@@ -544,6 +545,7 @@ NDims WeightsTensor::GetSimpleDims(const std::vector<size_t>& d, WeightsLayout l
break;
case os_is_yx_osa2_isa8_osv8_isv2:
case is_os_yx_isa2_osa8_isv8_osv2:
case g_os_is_yx_osa2_isa8_osv8_isv2:
newDims[2] = RoundUp(newDims[2], 16);
newDims[3] = RoundUp(newDims[3], 16);
break;
@@ -108,6 +108,7 @@ enum WeightsLayout {
os_is_zyx_isa8_osv16_isv4, // for fully connected MMAD
os_is_yx_osa4_isa8_osv8_isv4, // for MMAD convolution swizzled from ofm 0..7 to 0,4,8,12,16,20,24,28,
is_os_yx_isa4_osa8_isv8_osv4, // for onednn deconvolution
g_os_is_yx_osa2_isa8_osv8_isv2, // for MMAD convolution swizzled from ofm 0..7 to 0,4,8,12,16,20,24,28,
g_os_is_yx_osa4_isa8_osv8_isv4, // for MMAD convolution swizzled from ofm 0..7 to 0,4,8,12,16,20,24,28,
g_os_is_zyx_osa4_isa8_osv8_isv4, // for MMAD convolution swizzled from ofm 0..7 to 0,4,8,12,16,20,24,28,
os_is_yx_osa4_isa8_osv8_isv2, // for MMAD convolution swizzled from ofm 0..7 to 0,4,8,12,16,20,24,28,
@@ -834,6 +834,16 @@ inline uint get_g_is_os_yx_isa4_osa8_isv8_osv4(uint g, uint o, uint i, uint z, u
CAT(prefix, _OFM_NUM), \
CAT(prefix, _OFFSET))
#define GET_FILTER_G_OS_IS_YX_OSA2_ISA8_OSV8_ISV2_INDEX(prefix, g, o, i, y, x) \
get_g_os_is_yx_osa2_isa8_osv8_isv2( \
g, o, i, 0, y, x, \
CAT(prefix, _SIZE_X), \
CAT(prefix, _SIZE_Y), \
1, \
CAT(prefix, _IFM_NUM), \
CAT(prefix, _OFM_NUM), \
CAT(prefix, _OFFSET))
#define GET_FILTER_OS_IS_YX_OSA2_ISA8_OSV8_ISV2_INDEX(prefix, o, i, y, x) \
get_g_os_is_yx_osa2_isa8_osv8_isv2( \
0, o, i, 0, y, x, \
@@ -105,6 +105,8 @@ inline uint FUNC(get_input_index)(uint g, uint o, uint i, uint z, uint y, uint x
return GET_FILTER_OS_IS_ZYX_OSV16_ISV16_INDEX(INPUT0, o, i, z, y, x);
#elif defined INPUT0_LAYOUT_OS_IS_YX_OSA2_ISA8_OSV16_ISV4
return GET_FILTER_OS_IS_YX_OSA2_ISA8_OSV16_ISV4_INDEX(INPUT0, o, i, y, x);
#elif defined INPUT0_LAYOUT_G_OS_IS_YX_OSA2_ISA8_OSV8_ISV2
return GET_FILTER_G_OS_IS_YX_OSA2_ISA8_OSV8_ISV2_INDEX(INPUT0, g, o, i, y, x);
#elif defined INPUT0_LAYOUT_G_OS_IS_YX_OSA2_ISA8_OSV16_ISV4
return GET_FILTER_G_OS_IS_YX_OSA2_ISA8_OSV16_ISV4_INDEX(INPUT0, g, o, i, y, x);
#elif defined INPUT0_LAYOUT_OS_IS_YX_OSA2_ISA8_OSV16_ISV2
@@ -225,6 +227,8 @@ inline uint FUNC(get_output_index)(uint g, uint o, uint i, uint z, uint y, uint
return GET_FILTER_G_OS_IS_ZYX_OSA4_ISA8_OSV8_ISV2_INDEX(OUTPUT, g, o, i, z, y, x);
#elif defined OUTPUT_LAYOUT_OS_IS_YX_OSA2_ISA8_OSV16_ISV2
return GET_FILTER_OS_IS_YX_OSA2_ISA8_OSV16_ISV2_INDEX(OUTPUT, o, i, y, x);
#elif defined OUTPUT_LAYOUT_G_OS_IS_YX_OSA2_ISA8_OSV8_ISV2
return GET_FILTER_G_OS_IS_YX_OSA2_ISA8_OSV8_ISV2_INDEX(OUTPUT, g, o, i, y, x);
#elif defined OUTPUT_LAYOUT_G_OS_IS_YX_OSA2_ISA8_OSV16_ISV2
return GET_FILTER_G_OS_IS_YX_OSA2_ISA8_OSV16_ISV2_INDEX(OUTPUT, g, o, i, y, x);
#elif defined OUTPUT_LAYOUT_OS_IS_YX_OSA2_ISA8_OSV16_ISV4
@@ -385,6 +385,7 @@ std::string toString(WeightsLayout layout) {
case WeightsLayout::gs_oi_yxs_gsv16_yxsv4: return "GS_OI_YXS_GSV16_YXSV4";
case WeightsLayout::gs_oi_yxs_gsv32_yxsv4: return "GS_OI_YXS_GSV32_YXSV4";
case WeightsLayout::os_is_yx_osa4_isa8_osv8_isv4: return "OS_IS_YX_OSA4_ISA8_OSV8_ISV4";
case WeightsLayout::g_os_is_yx_osa2_isa8_osv8_isv2: return "G_OS_IS_YX_OSA2_ISA8_OSV8_ISV2";
case WeightsLayout::g_os_is_yx_osa4_isa8_osv8_isv4: return "G_OS_IS_YX_OSA4_ISA8_OSV8_ISV4";
case WeightsLayout::g_os_is_zyx_osa4_isa8_osv8_isv4: return "G_OS_IS_ZYX_OSA4_ISA8_OSV8_ISV4";
case WeightsLayout::os_is_yx_osa4_isa8_osv8_isv2: return "OS_IS_YX_OSA4_ISA8_OSV8_ISV2";
@@ -144,6 +144,7 @@ const format_traits& format::traits(type fmt) {
FMT_TRAITS(g_os_zyx_is_osv32_isv4, 1, 1, 3, 1, {0, 1, 2, 3, 4, 5}, "gozyxi", "oixyz?g", {{0, 32}, {1, 4}}),
FMT_TRAITS(g_os_zyx_is_osv32_isv16, 1, 1, 3, 1, {0, 1, 2, 3, 4, 5}, "gozyxi", "oixyz?g", {{0, 32}, {1, 16}}),
FMT_TRAITS(g_os_zyx_is_osv32_isv32, 1, 1, 3, 1, {0, 1, 2, 3, 4, 5}, "gozyxi", "oixyz?g", {{0, 32}, {1, 32}}),
FMT_TRAITS(g_os_is_yx_osa2_isa8_osv8_isv2, 1, 1, 2, 1, {0, 1, 2, 3, 4}, "goiyx", "oixy??g", {{0, 16}, {1, 16}}),
FMT_TRAITS(g_os_is_yx_osa4_isa8_osv8_isv4, 1, 1, 2, 1, {0, 1, 2, 3, 4}, "goiyx", "oixy??g", {{0, 32}, {1, 32}}),
FMT_TRAITS(g_os_is_zyx_osa4_isa8_osv8_isv4, 1, 1, 3, 1, {0, 1, 2, 3, 4, 5}, "goizyx", "oixyz?g", {{0, 32}, {1, 32}}),
FMT_TRAITS(g_os_is_yx_osa4_isa8_osv8_isv2, 1, 1, 2, 1, {0, 1, 2, 3, 4}, "goiyx", "oixy??g", {{0, 32}, {1, 16}}),