提交 c3bc7b7d authored 作者: sentient07's avatar sentient07

Added print_profile and apply method for printing profile by LocalOptGroup

上级 89a61e75
...@@ -1294,6 +1294,14 @@ class LocalOptGroup(LocalOptimizer): ...@@ -1294,6 +1294,14 @@ class LocalOptGroup(LocalOptimizer):
if len(self.opts) == 0: if len(self.opts) == 0:
return return
# This method is just kept for the `print_profile` method to know the variables that
# needs to be printed
def apply(self):
return (self.time_opts,
self.time_nodes,
self.node_created,
self.process_count)
def compute_opts(node): def compute_opts(node):
opts = self.track_map.get(type(node.op), []) opts = self.track_map.get(type(node.op), [])
opts += self.track_map.get(node.op, []) opts += self.track_map.get(node.op, [])
...@@ -1328,27 +1336,27 @@ class LocalOptGroup(LocalOptimizer): ...@@ -1328,27 +1336,27 @@ class LocalOptGroup(LocalOptimizer):
self.time_nodes[node] = node_finish - node_start self.time_nodes[node] = node_finish - node_start
return new_var return new_var
def print_summary(self, stream=sys.stdout, level=0, depth=-1): @staticmethod
blanc = (' ' * level) def print_profile(stream, prof, level=0):
print("%s%s id=%i" % ( (time_opts, time_nodes, node_created, process_count) = prof
(' ' * level), self.__class__.__name__, id(self)), file=stream) import pdb
if depth != 0: pdb.set_trace()
depth -= 1 blanc = (' ' * int(level))
for lopt in self.opts: print(blanc, "LocalOptGroup", file=stream)
lopt.print_summary(stream, level=(level + 2), depth=depth)
count_opt = [] count_opt = []
not_used = [] not_used = []
not_used_time = 0 not_used_time = 0
for o, count in iteritems(self.process_count): for o, count in iteritems(process_count):
if count > 0: if count > 0:
count_opt.append((self.time_opts[o], count, count_opt.append((time_opts[o], count,
self.node_created[o], o)) node_created[o], o))
else: else:
not_used.append((self.time_opts[o], o)) not_used.append((time_opts[o], o))
not_used_time += self.time_opts[o] not_used_time += time_opts[o]
if count_opt: if count_opt:
for i in count_opt:
if not "useless" in count_opt[-1].__name__:
continue
print(blanc, print(blanc,
' times - times applied - Node created - name:', ' times - times applied - Node created - name:',
file=stream) file=stream)
...@@ -1365,6 +1373,15 @@ class LocalOptGroup(LocalOptimizer): ...@@ -1365,6 +1373,15 @@ class LocalOptGroup(LocalOptimizer):
print(blanc + " ", ' %.3fs - %s' % (t, o), file=stream) print(blanc + " ", ' %.3fs - %s' % (t, o), file=stream)
print(file=stream) print(file=stream)
def print_summary(self, stream=sys.stdout, level=0, depth=-1):
blanc = (' ' * level)
print("%s%s id=%i" % (
(' ' * level), self.__class__.__name__, id(self)), file=stream)
if depth != 0:
depth -= 1
for lopt in self.opts:
lopt.print_summary(stream, level=(level + 2), depth=depth)
def add_requirements(self, fgraph): def add_requirements(self, fgraph):
for opt in self.opts: for opt in self.opts:
opt.add_requirements(fgraph) opt.add_requirements(fgraph)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论