From eeabb86b80bcc51dca2bf9c407094a3996b81bd9 Mon Sep 17 00:00:00 2001 From: Sungeun Kim Date: Mon, 31 Oct 2022 10:22:39 +0900 Subject: [PATCH] [GPU] set bfyx to input format for shallow conv (#13614) * set bfyx to input format for shallow conv --- src/plugins/intel_gpu/src/graph/layout_optimizer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp b/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp index d66440e67f3..6f862b13917 100644 --- a/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp +++ b/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp @@ -1746,7 +1746,7 @@ void layout_optimizer::select_preferred_formats_for_onednn(program_node& node, d // Conv or deconv gets a preferred format for its data input based on source memory description // But an input format for fused post-ops should be same with an output format of conv/deconv - size_t prim_input(0); + size_t prim_input(-1); if (node.is_type()) prim_input = node.get_dependency_index(node.as().input()); if (node.is_type()) @@ -1759,6 +1759,12 @@ void layout_optimizer::select_preferred_formats_for_onednn(program_node& node, d else // Dep for fused post ops src_fmt = onednn::find_data_format(prim_desc.dst_desc()); + // WA: shallow convolution needs to set input format by bfyx. + // onednn recommended byxf for input format. It will insert reorder before shallow conv. + if (node.is_type() && node.get_input_layouts()[0].feature() == 3) { + src_fmt = format::get_default_format(node.get_input_layouts()[0].get_rank(), false, false); + } + node.set_preferred_input_fmt(idx, src_fmt); auto dst_fmt = onednn::find_data_format(prim_desc.dst_desc());