[exo] Adding FuseConv2DAddSubPass into TFLOptimize.cpp (#8102)
author윤현식/On-Device Lab(SR)/Principal Engineer/삼성전자 <hyunsik.yoon@samsung.com>
Mon, 14 Oct 2019 04:47:10 +0000 (13:47 +0900)
committer박세희/On-Device Lab(SR)/Principal Engineer/삼성전자 <saehie.park@samsung.com>
Mon, 14 Oct 2019 04:47:10 +0000 (13:47 +0900)
Now FuseConv2DAddSubPass runs when UseFuseConv2DAddSubPass knob is on.

Signed-off-by: Hyun Sik Yoon <hyunsik.yoon@samsung.com>
compiler/exo/src/Knob.lst
compiler/exo/src/Passes.h
compiler/exo/src/TFLOptimize.cpp

index d2de61c..a9a524a 100644 (file)
@@ -30,3 +30,6 @@ KNOB_BOOL(ConvertRelu, true, Convert loco::Relu to TFLRelu)
 KNOB_BOOL(ConvertTensorBroadcast, true, Resolve loco::TensorBroadcast)
 // TODO loco::TensorSoftmax
 KNOB_BOOL(ConvertTensorTranspose, true, Resolve loco::TensorTranspose)
+
+// Optimization pass
+KNOB_BOOL(UseFuseConv2DAddSubPass, false, Fuse TFLAdd or TFLSub into TFLConv2D)
index 37af66d..a2a17e2 100644 (file)
@@ -19,6 +19,7 @@
 
 // Please add in alphabetical order
 
+#include "Pass/FuseConv2DAddSubPass.h"
 #include "Pass/ShapeInferencePass.h"
 #include "Pass/TypeInferencePass.h"
 
index a78a832..be33993 100644 (file)
@@ -35,7 +35,10 @@ void optimize(loco::Graph *g)
     phase.emplace_back(stdex::make_unique<TypeInferencePass>());
     phase.emplace_back(stdex::make_unique<ShapeInferencePass>());
 
-    // TODO Add FuseConv2DAddPass
+    if (get<Knob::UseFuseConv2DAddSubPass>())
+    {
+      phase.emplace_back(stdex::make_unique<FuseConv2DAddSubPass>());
+    }
 
     // TODO Add FuseReluPass