From 2a53023138630c17660d9f821390715928320e1b Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=9C=A4=ED=98=84=EC=8B=9D/On-Device=20Lab=28SR=29/Princip?= =?utf8?q?al=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Thu, 24 Oct 2019 15:28:22 +0900 Subject: [PATCH] [exo] Renaming FuseConv2DAddSubPass to FuseBiasAddPass (#8441) Supporting BiasAdd is needed for more ops (other than Conv2D) so pass is renamed into more general term. Signed-off-by: Hyun Sik Yoon --- compiler/exo/src/Knob.lst | 2 +- .../{FuseConv2DAddSubPass.cpp => FuseBiasAddPass.cpp} | 4 ++-- .../Pass/{FuseConv2DAddSubPass.h => FuseBiasAddPass.h} | 15 +++++++++------ ...Conv2DAddSubPass.test.cpp => FuseBiasAddPass.test.cpp} | 14 +++++++------- compiler/exo/src/Passes.h | 2 +- compiler/exo/src/TFLOptimize.cpp | 4 ++-- 6 files changed, 22 insertions(+), 19 deletions(-) rename compiler/exo/src/Pass/{FuseConv2DAddSubPass.cpp => FuseBiasAddPass.cpp} (99%) rename compiler/exo/src/Pass/{FuseConv2DAddSubPass.h => FuseBiasAddPass.h} (73%) rename compiler/exo/src/Pass/{FuseConv2DAddSubPass.test.cpp => FuseBiasAddPass.test.cpp} (96%) diff --git a/compiler/exo/src/Knob.lst b/compiler/exo/src/Knob.lst index 949f38e..41fbad8 100644 --- a/compiler/exo/src/Knob.lst +++ b/compiler/exo/src/Knob.lst @@ -32,5 +32,5 @@ KNOB_BOOL(ConvertTensorBroadcast, true, Resolve loco::TensorBroadcast) KNOB_BOOL(ConvertTensorTranspose, true, Resolve loco::TensorTranspose) // Optimization pass -KNOB_BOOL(UseFuseConv2DAddSubPass, true, Fuse TFLAdd or TFLSub into TFLConv2D) +KNOB_BOOL(UseFuseBiasAddPass, true, Fuse TFLAdd or TFLSub into TFLConv2D) KNOB_BOOL(UseFuseReluPass, true, Fuse TFLAdd or TFLSub into TFLConv2D or so) diff --git a/compiler/exo/src/Pass/FuseConv2DAddSubPass.cpp b/compiler/exo/src/Pass/FuseBiasAddPass.cpp similarity index 99% rename from compiler/exo/src/Pass/FuseConv2DAddSubPass.cpp rename to compiler/exo/src/Pass/FuseBiasAddPass.cpp index 7cde00b..ef34cdc 100644 --- a/compiler/exo/src/Pass/FuseConv2DAddSubPass.cpp +++ b/compiler/exo/src/Pass/FuseBiasAddPass.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "FuseConv2DAddSubPass.h" +#include "FuseBiasAddPass.h" #include "Dialect/IR/TFLNodes.h" #include "Dialect/IR/TFLDialect.h" @@ -296,7 +296,7 @@ struct Performer final : public locoex::TFLNodeMutableVisitor namespace exo { -bool FuseConv2DAddSubPass::run(loco::Graph *g) +bool FuseBiasAddPass::run(loco::Graph *g) { Collector collector; diff --git a/compiler/exo/src/Pass/FuseConv2DAddSubPass.h b/compiler/exo/src/Pass/FuseBiasAddPass.h similarity index 73% rename from compiler/exo/src/Pass/FuseConv2DAddSubPass.h rename to compiler/exo/src/Pass/FuseBiasAddPass.h index a828b95..0288ec8 100644 --- a/compiler/exo/src/Pass/FuseConv2DAddSubPass.h +++ b/compiler/exo/src/Pass/FuseBiasAddPass.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef __PASS_FUSE_CONV2D_ADDSUB_PASS_H__ -#define __PASS_FUSE_CONV2D_ADDSUB_PASS_H__ +#ifndef __PASS_FUSE_BIASADD_PASS_H__ +#define __PASS_FUSE_BIASADD_PASS_H__ #include @@ -23,7 +23,10 @@ namespace exo { /** - * @brief Class to fuse TFLAdd or TFLSub that follows TFLConv2D + * @brief Class to fuse TFLAdd or TFLSub into Bias input of the following ops: + * - TFLConv2D, TFLDepthwiseConv2D + * - TODO Consider to add FullyConnected, LSTM-related op (see Toco's impelementation + * in ConvertLstmCellOperator) * * Case 1. Conv2D and TFLAdd * @@ -47,13 +50,13 @@ namespace exo * @note TFLSub, of which x() == TFLConv2D and y() == TFLConst, will be fused. * If x() == TFLConst and y() == TFLConv2D, it won't be fused. */ -struct FuseConv2DAddSubPass final : public logo::Pass +struct FuseBiasAddPass final : public logo::Pass { - const char *name(void) const final { return "exo::FuseConv2DAddSubPass"; } + const char *name(void) const final { return "exo::FuseBiasAddPass"; } bool run(loco::Graph *g) final; }; } // namespace exo -#endif // __PASS_FUSE_CONV2D_ADDSUB_PASS_H__ +#endif // __PASS_FUSE_BIASADD_PASS_H__ diff --git a/compiler/exo/src/Pass/FuseConv2DAddSubPass.test.cpp b/compiler/exo/src/Pass/FuseBiasAddPass.test.cpp similarity index 96% rename from compiler/exo/src/Pass/FuseConv2DAddSubPass.test.cpp rename to compiler/exo/src/Pass/FuseBiasAddPass.test.cpp index 2782d19..2a8f67c 100644 --- a/compiler/exo/src/Pass/FuseConv2DAddSubPass.test.cpp +++ b/compiler/exo/src/Pass/FuseBiasAddPass.test.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "FuseConv2DAddSubPass.h" +#include "FuseBiasAddPass.h" #include "Dialect/IR/TFLNodes.h" #include "TestGraph.h" @@ -104,7 +104,7 @@ TEST(FuseConv2DBiasAddPassTest, Conv2D_Add_01_basic) { exo::test::TypeShapeReadyPhase test_phase; - test_phase.add_pass(); + test_phase.add_pass(); test_phase.run(g.graph()); } @@ -156,7 +156,7 @@ TEST(FuseConv2DBiasAddPassTest, Conv2D_Add_02_TFLAdd_y_is_scalar) { exo::test::TypeShapeReadyPhase test_phase; - test_phase.add_pass(); + test_phase.add_pass(); test_phase.run(g.graph()); } @@ -199,7 +199,7 @@ TEST(FuseConv2DBiasAddPassTest, Conv2D_Sub_01_basic) { exo::test::TypeShapeReadyPhase test_phase; - test_phase.add_pass(); + test_phase.add_pass(); test_phase.run(g.graph()); } @@ -242,7 +242,7 @@ TEST(FuseConv2DBiasAddPassTest, Conv2D_Sub_02_fusing_will_not_performed) { exo::test::TypeShapeReadyPhase test_phase; - test_phase.add_pass(); + test_phase.add_pass(); test_phase.run(g.graph()); } @@ -290,7 +290,7 @@ TEST(FuseConv2DBiasAddPassTest, Regression_Conv2D_Add_fused_action_00) { exo::test::TypeShapeReadyPhase test_phase; - test_phase.add_pass(); + test_phase.add_pass(); test_phase.run(g.graph()); } @@ -331,7 +331,7 @@ TEST(FuseConv2DBiasAddPassTest, Regression_Conv2D_Add_fused_action_01) { exo::test::TypeShapeReadyPhase test_phase; - test_phase.add_pass(); + test_phase.add_pass(); test_phase.run(g.graph()); } diff --git a/compiler/exo/src/Passes.h b/compiler/exo/src/Passes.h index 955ccf3..702bfdb 100644 --- a/compiler/exo/src/Passes.h +++ b/compiler/exo/src/Passes.h @@ -20,7 +20,7 @@ // Please add in alphabetical order #include "Pass/FoldTransposeOfConst.h" -#include "Pass/FuseConv2DAddSubPass.h" +#include "Pass/FuseBiasAddPass.h" #include "Pass/FuseReluPass.h" #include "Pass/MergeConcatNodesPass.h" #include "Pass/ShapeInferencePass.h" diff --git a/compiler/exo/src/TFLOptimize.cpp b/compiler/exo/src/TFLOptimize.cpp index 1a7d5b9..b44b78f 100644 --- a/compiler/exo/src/TFLOptimize.cpp +++ b/compiler/exo/src/TFLOptimize.cpp @@ -37,9 +37,9 @@ void optimize(loco::Graph *g) phase.emplace_back(stdex::make_unique()); - if (get()) + if (get()) { - phase.emplace_back(stdex::make_unique()); + phase.emplace_back(stdex::make_unique()); } if (get()) -- 2.7.4