提交 f8e22d5e authored 作者: Frederic Bastien's avatar Frederic Bastien

Make fusion optimizer faster for big graph.

上级 96603aef
...@@ -3409,6 +3409,8 @@ class FusionOptimizer(Optimizer): ...@@ -3409,6 +3409,8 @@ class FusionOptimizer(Optimizer):
nodelist.reverse() nodelist.reverse()
did_something = False did_something = False
for node in nodelist: for node in nodelist:
# Don't try to fuse node that have already been fused.
if node in env.nodes:
new_outputs = self.optimizer(node) new_outputs = self.optimizer(node)
if new_outputs: if new_outputs:
assert len(new_outputs) == len(node.outputs) assert len(new_outputs) == len(node.outputs)
...@@ -3417,11 +3419,9 @@ class FusionOptimizer(Optimizer): ...@@ -3417,11 +3419,9 @@ class FusionOptimizer(Optimizer):
zip(node.outputs, new_outputs), zip(node.outputs, new_outputs),
reason = self.__class__.__name__) reason = self.__class__.__name__)
did_something = True did_something = True
break
except InconsistencyError, e: except InconsistencyError, e:
pass pass
if config.tensor.local_elemwise_fusion: if config.tensor.local_elemwise_fusion:
_logger.debug("enabling optimization fusion elemwise in fast_run") _logger.debug("enabling optimization fusion elemwise in fast_run")
compile.optdb.register('elemwise_fusion', FusionOptimizer(local_elemwise_fusion), 71.00, 'fast_run', 'fusion', 'local_elemwise_fusion') compile.optdb.register('elemwise_fusion', FusionOptimizer(local_elemwise_fusion), 71.00, 'fast_run', 'fusion', 'local_elemwise_fusion')
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论