[IE CLDNN] Fix performance degradation for brain-tumor-segmentation-0002 (#2038)
authorVladimir Paramuzov <vladimir.paramuzov@intel.com>
Fri, 4 Sep 2020 08:54:59 +0000 (11:54 +0300)
committerGitHub <noreply@github.com>
Fri, 4 Sep 2020 08:54:59 +0000 (11:54 +0300)
JIRA: 37933

Co-authored-by: Egor Churaev <egor.churaev@intel.com>
inference-engine/thirdparty/clDNN/src/graph_optimizer/prepare_padding.cpp

index 8c1f62d..8e15fd5 100644 (file)
@@ -130,6 +130,15 @@ void prepare_padding::run(program_impl& p) {
             continue;
         }
 
+        // convolution have only one input primitive
+        auto prev_prim_output_layout = conv_input_node.get_output_layout();
+
+        // For 3d convolution padding is needed only for int8 case
+        // FP16/32 kernels can work w/o physical padding
+        if (prev_prim_output_layout.format == cldnn::format::b_fs_zyx_fsv16 &&
+            prev_prim_output_layout.data_type != data_types::i8 && prev_prim_output_layout.data_type != data_types::u8)
+            continue;
+
         // We shoudn't apply any padding to nodes which are marked as outputs
         if (conv_input_node.is_output())
             continue;
@@ -140,9 +149,6 @@ void prepare_padding::run(program_impl& p) {
 
         layout filter_layout = filter_node.get_output_layout();
 
-        // convolution have only one input primitive
-        auto prev_prim_output_layout = conv_input_node.get_output_layout();
-
         // Compute initial required paddings for primitive used as input for convolution.
         auto input_offset = conv->input_offset;
         auto stride = conv->stride;