提交 2fb98571 authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Add requirements for rewrites in SeqOptimizer upfront

This also prevents `SeqOptimizer.apply` from calling `Rewriter.add_requirements` on each iteration through its list of sub-`Rewriter`s.
上级 6847e573
...@@ -276,7 +276,7 @@ class SeqOptimizer(GlobalOptimizer, UserList): ...@@ -276,7 +276,7 @@ class SeqOptimizer(GlobalOptimizer, UserList):
try: try:
nb_nodes_before = len(fgraph.apply_nodes) nb_nodes_before = len(fgraph.apply_nodes)
t0 = time.time() t0 = time.time()
sub_prof = optimizer.optimize(fgraph) sub_prof = optimizer.apply(fgraph)
l.append(float(time.time() - t0)) l.append(float(time.time() - t0))
sub_profs.append(sub_prof) sub_profs.append(sub_prof)
nb_nodes.append((nb_nodes_before, len(fgraph.apply_nodes))) nb_nodes.append((nb_nodes_before, len(fgraph.apply_nodes)))
...@@ -324,6 +324,10 @@ class SeqOptimizer(GlobalOptimizer, UserList): ...@@ -324,6 +324,10 @@ class SeqOptimizer(GlobalOptimizer, UserList):
def __repr__(self): def __repr__(self):
return f"SeqOpt({self.data})" return f"SeqOpt({self.data})"
def add_requirements(self, fgraph):
for opt in self.data:
opt.add_requirements(fgraph)
def print_summary(self, stream=sys.stdout, level=0, depth=-1): def print_summary(self, stream=sys.stdout, level=0, depth=-1):
name = getattr(self, "name", None) name = getattr(self, "name", None)
print( print(
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论