Current optimizations in luci/Pass are only applicable to loco::graph, not luci::Module.
However, if some model has multiple subgraphs and we want to apply BCQ to the model, BCQ information should be shared by each subgraph.
Therefore, let's support module optimization in luci!
Notes
As design of FuseBCQPass is changed, core logic is little bit changed.
Todo
[x] Introduce luci::Pass #5081 #5090 #5106
[x] Introduce luci::PhaseRunner #5088
[x] Introduce ModuleProgressReporter #5082
[x] Introduce optimizer for luci::Module in CircleOptimizer #5114
[x] Enable luci::Module optimization in circle2circle #5123
[x] Update FuseBCQPass
[x] Update generate_bcq_output_arrays #5089
[x] Update algorithm of FuseBCQPass #5092 #5117 #5128
[x] Introduce FuseBCQPass::run(Module) #5141
[x] Update CircleOptimizer to use luci/Service using luci::Module #5129
[x] Update CircleOptimizer to use ModulePass instead of logo::Pass for some passes #5166
Description
Current optimizations in
luci/Pass
are only applicable toloco::graph
, notluci::Module
. However, if some model has multiple subgraphs and we want to apply BCQ to the model, BCQ information should be shared by each subgraph. Therefore, let's supportmodule
optimization inluci
!Notes
FuseBCQPass
is changed, core logic is little bit changed.Todo
luci::Pass
#5081 #5090 #5106luci::PhaseRunner
#5088ModuleProgressReporter
#5082luci::Module
inCircleOptimizer
#5114luci::Module
optimization incircle2circle
#5123FuseBCQPass
generate_bcq_output_arrays
#5089FuseBCQPass
#5092 #5117 #5128FuseBCQPass::run(Module)
#5141CircleOptimizer
to useluci/Service
usingluci::Module
#5129CircleOptimizer
to useModulePass
instead oflogo::Pass
for some passes #5166Draft
4962