Prepare to use Stride struct in operation param (#5261)
author오형석/On-Device Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Fri, 24 May 2019 02:01:29 +0000 (11:01 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 24 May 2019 02:01:29 +0000 (11:01 +0900)
Move util::Stride to InternalType.h
Make field for stride param in operation node definition

Signed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
14 files changed:
runtimes/neurun/backend/acl_cl/StageGenerator.cc
runtimes/neurun/backend/acl_common/Convert.cc
runtimes/neurun/backend/acl_common/Convert.h
runtimes/neurun/backend/acl_neon/StageGenerator.cc
runtimes/neurun/backend/cpu/StageGenerator.cc
runtimes/neurun/core/include/model/InternalType.h
runtimes/neurun/core/include/model/operation/AvgPool2DNode.h
runtimes/neurun/core/include/model/operation/Conv2DNode.h
runtimes/neurun/core/include/model/operation/DepthwiseConv2DNode.h
runtimes/neurun/core/include/model/operation/L2Pool2DNode.h
runtimes/neurun/core/include/model/operation/MaxPool2DNode.h
runtimes/neurun/core/include/model/operation/TransposeConvNode.h
runtimes/neurun/core/include/util/Padding.h
runtimes/neurun/core/src/util/Padding.cc

index e84726a..a161d19 100644 (file)
@@ -45,7 +45,7 @@ using ::neurun::compiler::IExecutionBuilder;
 template <typename T> std::unique_ptr<T> make_layer(void) { return std::unique_ptr<T>{new T}; }
 
 ::arm_compute::PadStrideInfo asPadStringInfo(const neurun::model::ExplicitPadding &padding,
-                                             const neurun::util::Stride &stride)
+                                             const neurun::model::Stride &stride)
 {
   return ::arm_compute::PadStrideInfo{stride.horizontal,
                                       stride.vertical,
@@ -225,7 +225,7 @@ void StageGenerator::visit(const model::operation::Conv2DNode &node)
   const auto ofm_shape = _ctx.at(ofm_index).shape().asFeature();
   const auto ker_shape = _ctx.at(ker_index).shape().asKernel();
 
-  neurun::util::Stride stride;
+  model::Stride stride;
 
   stride.vertical = _ctx.at(vstride_index).asScalar<int32_t>();
   stride.horizontal = _ctx.at(hstride_index).asScalar<int32_t>();
@@ -239,8 +239,7 @@ void StageGenerator::visit(const model::operation::Conv2DNode &node)
     model::OperandIndex bias_index;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -297,7 +296,7 @@ void StageGenerator::visit(const model::operation::DepthwiseConv2DNode &node)
 
   const auto multiplier = _ctx.at(multiplier_index).asScalar<int>();
 
-  neurun::util::Stride stride;
+  neurun::model::Stride stride;
 
   stride.vertical = _ctx.at(vstride_index).asScalar<int32_t>();
   stride.horizontal = _ctx.at(hstride_index).asScalar<int32_t>();
@@ -311,7 +310,7 @@ void StageGenerator::visit(const model::operation::DepthwiseConv2DNode &node)
     model::OperandIndex bias_index;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
+    neurun::model::Stride stride;
     int multiplier;
 
     model::Activation activation;
@@ -387,8 +386,7 @@ void StageGenerator::visit(const model::operation::MaxPool2DNode &node)
     uint32_t kh;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -472,8 +470,7 @@ void StageGenerator::visit(const model::operation::AvgPool2DNode &node)
     uint32_t kh;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -1964,7 +1961,7 @@ void StageGenerator::visit(const model::operation::L2Pool2DNode &node)
   const int32_t kh = _ctx.at(kh_index).asScalar<int32_t>();
   const int32_t kw = _ctx.at(kw_index).asScalar<int32_t>();
 
-  neurun::util::Stride stride;
+  neurun::model::Stride stride;
 
   stride.vertical = _ctx.at(vstride_index).asScalar<int32_t>();
   stride.horizontal = _ctx.at(hstride_index).asScalar<int32_t>();
@@ -1979,8 +1976,7 @@ void StageGenerator::visit(const model::operation::L2Pool2DNode &node)
     uint32_t kh;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -2256,7 +2252,7 @@ void StageGenerator::visit(const model::operation::TransposeConvNode &node)
     model::OperandIndex ker_index;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
+    model::Stride stride;
   };
 
   Param param;
index 7420358..432d1c3 100644 (file)
@@ -119,7 +119,7 @@ namespace acl_common
 }
 
 ::arm_compute::PadStrideInfo asPadStrideInfo(const model::ExplicitPadding &padding,
-                                             const neurun::util::Stride &stride)
+                                             const model::Stride &stride)
 {
   return ::arm_compute::PadStrideInfo{stride.horizontal,
                                       stride.vertical,
index 92cc9f8..1e5f9bd 100644 (file)
@@ -50,7 +50,7 @@ namespace acl_common
                                        bool apply_dim_correction = true);
 
 ::arm_compute::PadStrideInfo asPadStrideInfo(const model::ExplicitPadding &padding,
-                                             const neurun::util::Stride &stride);
+                                             const model::Stride &stride);
 
 ::arm_compute::ActivationLayerInfo
 asActivationLayerInfo(const ::neurun::model::Activation &act_code);
index e92fd5f..c03f021 100644 (file)
@@ -50,7 +50,7 @@ using ::neurun::compiler::IExecutionBuilder;
 template <typename T> std::unique_ptr<T> make_layer(void) { return std::unique_ptr<T>{new T}; }
 
 ::arm_compute::PadStrideInfo asPadStringInfo(const neurun::model::ExplicitPadding &padding,
-                                             const neurun::util::Stride &stride)
+                                             const neurun::model::Stride &stride)
 {
   return ::arm_compute::PadStrideInfo{stride.horizontal,
                                       stride.vertical,
@@ -192,7 +192,7 @@ void StageGenerator::visit(const model::operation::Conv2DNode &node)
   const auto ifm_shape = _ctx.at(ifm_index).shape().asFeature();
   const auto ker_shape = _ctx.at(ker_index).shape().asKernel();
 
-  neurun::util::Stride stride;
+  model::Stride stride;
 
   stride.vertical = _ctx.at(vstride_index).asScalar<int32_t>();
   stride.horizontal = _ctx.at(hstride_index).asScalar<int32_t>();
@@ -206,8 +206,7 @@ void StageGenerator::visit(const model::operation::Conv2DNode &node)
     model::OperandIndex bias_index;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -264,7 +263,7 @@ void StageGenerator::visit(const model::operation::DepthwiseConv2DNode &node)
 
   const auto multiplier = _ctx.at(multiplier_index).asScalar<int>();
 
-  neurun::util::Stride stride;
+  model::Stride stride;
 
   stride.vertical = _ctx.at(vstride_index).asScalar<int32_t>();
   stride.horizontal = _ctx.at(hstride_index).asScalar<int32_t>();
@@ -278,7 +277,7 @@ void StageGenerator::visit(const model::operation::DepthwiseConv2DNode &node)
     model::OperandIndex bias_index;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
+    model::Stride stride;
     int multiplier;
 
     model::Activation activation;
@@ -354,8 +353,7 @@ void StageGenerator::visit(const model::operation::MaxPool2DNode &node)
     uint32_t kh;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -439,8 +437,7 @@ void StageGenerator::visit(const model::operation::AvgPool2DNode &node)
     uint32_t kh;
 
     model::ExplicitPadding padding;
-    neurun::util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
index 527e139..c7f6ac2 100644 (file)
@@ -66,7 +66,7 @@ void StageGenerator::visit(const model::operation::Conv2DNode &node)
   const auto vstride_index{node.param().vstride_index};
   const auto hstride_index{node.param().hstride_index};
 
-  util::Stride stride;
+  model::Stride stride;
 
   stride.vertical = _ctx.at(vstride_index).asScalar<int32_t>();
   stride.horizontal = _ctx.at(hstride_index).asScalar<int32_t>();
@@ -85,8 +85,7 @@ void StageGenerator::visit(const model::operation::Conv2DNode &node)
     ::neurun::backend::cpu::kernel::Shape bias_shape;
 
     model::ExplicitPadding padding;
-    util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -145,7 +144,7 @@ void StageGenerator::visit(const model::operation::DepthwiseConv2DNode &node)
 
   const auto multiplier_index{node.param().multiplier_index};
 
-  util::Stride stride;
+  model::Stride stride;
 
   stride.vertical = _ctx.at(vstride_index).asScalar<int32_t>();
   stride.horizontal = _ctx.at(hstride_index).asScalar<int32_t>();
@@ -166,7 +165,7 @@ void StageGenerator::visit(const model::operation::DepthwiseConv2DNode &node)
     ::neurun::backend::cpu::kernel::Shape bias_shape;
 
     model::ExplicitPadding padding;
-    util::Stride stride;
+    model::Stride stride;
 
     int multiplier;
 
@@ -246,8 +245,7 @@ void StageGenerator::visit(const model::operation::MaxPool2DNode &node)
     ::neurun::backend::cpu::kernel::Shape ifm_shape;
 
     model::ExplicitPadding padding;
-    util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
@@ -319,8 +317,7 @@ void StageGenerator::visit(const model::operation::AvgPool2DNode &node)
     ::neurun::backend::cpu::kernel::Shape ifm_shape;
 
     model::ExplicitPadding padding;
-    util::Stride stride;
-
+    model::Stride stride;
     model::Activation activation;
   };
 
index 532b781..fccf2fe 100644 (file)
@@ -56,6 +56,12 @@ struct Padding
   ExplicitPadding param;
 };
 
+struct Stride
+{
+  uint32_t vertical;
+  uint32_t horizontal;
+};
+
 } // namespace model
 } // namespace neurun
 
index 6dff4f7..b671d4e 100644 (file)
@@ -42,6 +42,8 @@ public:
     OperandIndex kw_index;
     OperandIndex kh_index;
 
+    Stride stride;
+    // hstride_index and vtride_index will be deprecated
     OperandIndex hstride_index;
     OperandIndex vstride_index;
 
index 5f0f826..9526119 100644 (file)
@@ -41,6 +41,8 @@ public:
 
   struct Param
   {
+    Stride stride;
+    // hstride_index and vtride_index will be deprecated
     OperandIndex hstride_index;
     OperandIndex vstride_index;
 
index c12a5f0..ce44644 100644 (file)
@@ -41,6 +41,8 @@ public:
 
   struct Param
   {
+    Stride stride;
+    // hstride_index and vtride_index will be deprecated
     OperandIndex hstride_index;
     OperandIndex vstride_index;
     Padding padding;
index 077966c..5571b8f 100644 (file)
@@ -40,7 +40,8 @@ public:
   struct Param
   {
     Padding padding;
-
+    Stride stride;
+    // hstride_index and vtride_index will be deprecated
     OperandIndex hstride_index;
     OperandIndex vstride_index;
 
index d846fdf..7420353 100644 (file)
@@ -41,7 +41,8 @@ public:
   {
     OperandIndex kw_index;
     OperandIndex kh_index;
-
+    Stride stride;
+    // hstride_index and vtride_index will be deprecated
     OperandIndex hstride_index;
     OperandIndex vstride_index;
 
index 38ba3f5..f1175d0 100644 (file)
@@ -42,6 +42,8 @@ public:
   struct Param
   {
     Padding padding;
+    Stride stride;
+    // hstride_index and vtride_index will be deprecated
     OperandIndex hstride_index;
     OperandIndex vstride_index;
   };
index f5660ba..6f7d46b 100644 (file)
@@ -28,20 +28,14 @@ namespace neurun
 namespace util
 {
 
-struct Stride
-{
-  uint32_t vertical;
-  uint32_t horizontal;
-};
-
 model::ExplicitPadding valid_padding(void);
 model::ExplicitPadding same_padding(const nnfw::misc::feature::Shape &ifm_shape,
                                     const nnfw::misc::feature::Shape &ofm_shape,
-                                    const Stride &stride, uint32_t kw, uint32_t kh);
+                                    const model::Stride &stride, uint32_t kw, uint32_t kh);
 model::ExplicitPadding calculatePadding(const model::Padding &padding,
                                         const nnfw::misc::feature::Shape &ifm_shape,
                                         const nnfw::misc::feature::Shape &ofm_shape,
-                                        const Stride &stride, uint32_t kw, uint32_t kh);
+                                        const model::Stride &stride, uint32_t kw, uint32_t kh);
 
 } // namespace util
 } // namespace neurun
index 79427e7..0e408da 100644 (file)
@@ -47,7 +47,7 @@ model::ExplicitPadding valid_padding(void)
 
 model::ExplicitPadding same_padding(const nnfw::misc::feature::Shape &ifm_shape,
                                     const nnfw::misc::feature::Shape &ofm_shape,
-                                    const Stride &stride, uint32_t kw, uint32_t kh)
+                                    const model::Stride &stride, uint32_t kw, uint32_t kh)
 {
   model::ExplicitPadding padding;
 
@@ -75,7 +75,7 @@ model::ExplicitPadding same_padding(const nnfw::misc::feature::Shape &ifm_shape,
 model::ExplicitPadding calculatePadding(const model::Padding &padding,
                                         const nnfw::misc::feature::Shape &ifm_shape,
                                         const nnfw::misc::feature::Shape &ofm_shape,
-                                        const Stride &stride, uint32_t kw, uint32_t kh)
+                                        const model::Stride &stride, uint32_t kw, uint32_t kh)
 {
   if (padding.type == model::PaddingType::EXPLICIT)
   {