[neurun] Fix convolution cpu backend debug build bug (#2150)
author오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Fri, 3 Aug 2018 07:00:34 +0000 (16:00 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 3 Aug 2018 07:00:34 +0000 (16:00 +0900)
Fix convolution cpu backend debug build bug by check code in tflite kernel

Signed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
runtimes/neurun/src/kernel/cpufallback/ConvolutionLayer.cc

index 7e4e464..88cd78e 100644 (file)
@@ -69,6 +69,18 @@ bool ConvolutionLayer::convFloat32()
 {
   ANDROID_NN_CONV_PARAMETERS(float)
 
+  const ::tflite::Dims<4> &kernel_dim = convertShapeToDims(_kernelShape);
+  const int kernel_width = ArraySize(kernel_dim, 1);
+  const int kernel_height = ArraySize(kernel_dim, 2);
+  const bool need_im2col =
+      _strideWidth != 1 || _strideHeight != 1 || kernel_width != 1 || kernel_height != 1;
+
+  float *im2colDataToPass = nullptr;
+  if (need_im2col)
+  {
+    im2colDataToPass = im2colData;
+  }
+
   float output_activation_min, output_activation_max;
   CalculateActivationRangeFloat(_activation, &output_activation_min, &output_activation_max);
   int32_t dilationWidthFactor = 1, dilationHeightFactor = 1;
@@ -78,7 +90,7 @@ bool ConvolutionLayer::convFloat32()
       reinterpret_cast<const float *>(_biasData), convertShapeToDims(_biasShape), _strideWidth,
       _strideHeight, dilationWidthFactor, dilationHeightFactor, paddingWidth, paddingHeight,
       output_activation_min, output_activation_max, reinterpret_cast<float *>(_outputData),
-      convertShapeToDims(_outputShape), im2colData, im2colDim);
+      convertShapeToDims(_outputShape), im2colDataToPass, im2colDim);
   return true;
 }