提交 bad7ae3d authored 作者: Roy Xue's avatar Roy Xue

Fix comments and PEP8 reformat

上级 6032d56b
...@@ -648,7 +648,7 @@ class ProfileStats(object): ...@@ -648,7 +648,7 @@ class ProfileStats(object):
v = out.type.get_size(sh) v = out.type.get_size(sh)
sum_dense += v sum_dense += v
else: else:
v = "Unknown" v = 'Variable not created'
var_mem[out] = v var_mem[out] = v
fct_memory[node.fgraph][node].append(v) fct_memory[node.fgraph][node].append(v)
...@@ -694,8 +694,8 @@ class ProfileStats(object): ...@@ -694,8 +694,8 @@ class ProfileStats(object):
node_memory_size = [0, 0] node_memory_size = [0, 0]
running_memory_size = [0, 0] running_memory_size = [0, 0]
running_max_memory_size = [0, 0] running_max_memory_size = [0, 0]
node_memory_saved_by_view = [0, 0] node_memory_saved_by_view = 0
node_memory_saved_by_inplace = [0, 0] node_memory_saved_by_inplace = 0
# This take only the inputs/outputs dependencies. # This take only the inputs/outputs dependencies.
dependencies = fgraph.profile.dependencies dependencies = fgraph.profile.dependencies
...@@ -724,22 +724,18 @@ class ProfileStats(object): ...@@ -724,22 +724,18 @@ class ProfileStats(object):
for v in val: for v in val:
# TODO check the op returned a view # TODO check the op returned a view
if isinstance(v.type, theano.sandbox.cuda.CudaNdarrayType):
cg = 1
else:
cg = 0
if dmap and idx in dmap: if dmap and idx in dmap:
node_memory_saved_by_inplace[cg] += v node_memory_saved_by_inplace += v
# TODO check the op returned a view # TODO check the op returned a view
elif vmap and idx in vmap: elif vmap and idx in vmap:
node_memory_saved_by_view[cg] += v node_memory_saved_by_view += v
idx += 1 idx += 1
# Update the Python emulating dicts and add the memory # Update the Python emulating dicts and add the memory
# allocated by the node # allocated by the node
idx2 = 0 idx2 = 0
for out in node.outputs: for out in node.outputs:
if isinstance(v.type, theano.sandbox.cuda.CudaNdarrayType): if isinstance(out.type, theano.sandbox.cuda.CudaNdarrayType):
cg = 1 cg = 1
else: else:
cg = 0 cg = 0
...@@ -771,18 +767,18 @@ class ProfileStats(object): ...@@ -771,18 +767,18 @@ class ProfileStats(object):
idx2 += 1 idx2 += 1
running_max_memory_size[0] = max(running_max_memory_size[0], running_max_memory_size[0] = max(running_max_memory_size[0],
running_memory_size[0]) running_memory_size[0])
running_max_memory_size[1] = max(running_max_memory_size[1], running_max_memory_size[1] = max(running_max_memory_size[1],
running_memory_size[1]) running_memory_size[1])
# Mimic the combination of Theano and Python gc # Mimic the combination of Theano and Python gc
for ins in node.inputs: for ins in node.inputs:
assert not (ins in view_of and viewed_by[ins]) assert not (ins in view_of and viewed_by[ins])
# we trac the original var, so this shouldn't happen # we trac the original var, so this shouldn't happen
if isinstance(v.type, theano.sandbox.cuda.CudaNdarrayType): if isinstance(ins.type, theano.sandbox.cuda.CudaNdarrayType):
cg = 1 cg = 1
else: else:
cg = 2 cg = 0
if (dependencies[ins] and if (dependencies[ins] and
ins not in fgraph.outputs and ins not in fgraph.outputs and
ins.owner and ins.owner and
...@@ -800,7 +796,7 @@ class ProfileStats(object): ...@@ -800,7 +796,7 @@ class ProfileStats(object):
# ins is viewed_by something else, so its # ins is viewed_by something else, so its
# memory isn't freed # memory isn't freed
pass pass
return [node_memory_size, running_memory_size, return [node_memory_size, running_memory_size,
running_max_memory_size, node_memory_saved_by_inplace, running_max_memory_size, node_memory_saved_by_inplace,
node_memory_saved_by_view] node_memory_saved_by_view]
...@@ -1050,7 +1046,27 @@ class ProfileStats(object): ...@@ -1050,7 +1046,27 @@ class ProfileStats(object):
print >> file, "---" print >> file, "---"
# print >> file, " Max if no gc, inplace and view: %dKB" % int( # print >> file, " Max if no gc, inplace and view: %dKB" % int(
# round(max_sum_size / 1024)) # round(max_sum_size / 1024))
print >> file, "----CPU Memory Profile"
print >> file, " Max if no gc (allow_gc=False): %dKB (%dKB)" % (int(round(
new_max_node_memory_size / 1024.)), int(round(
max_node_memory_size / 1024.)))
print >> file, " Max if linker=cvm(default): %dKB (%dKB)" % (int(round(
new_max_running_max_memory_size / 1024.)), int(round(
max_running_max_memory_size / 1024.)))
if min_max_peak:
print >> file, " Minimum peak from all valid apply node order is %dKB(took %.3fs to compute)" % (int(round(
min_max_peak / 1024.)), min_peak_time)
print >> file, " Memory saved if views are used: %dKB (%dKB)" % (int(
round(new_max_node_memory_saved_by_view / 1024.)), int(
round(max_node_memory_saved_by_view / 1024.)))
print >> file, " Memory saved if inplace ops are used: %dKB (%dKB)" % \
(int(round(new_max_node_memory_saved_by_inplace / 1024.)),
int(round(max_node_memory_saved_by_inplace / 1024.)))
print >> file, " Memory saved if gc is enabled: %dKB (%dKB)" % (int(
round(new_max_node_memory_size - new_max_running_max_memory_size) / 1024.), int(
round(max_node_memory_size - max_running_max_memory_size) / 1024.))
print >> file, "----GPU Memory Profile"
print >> file, " Max if no gc (allow_gc=False): %dKB (%dKB)" % (int(round( print >> file, " Max if no gc (allow_gc=False): %dKB (%dKB)" % (int(round(
new_max_node_memory_size / 1024.)), int(round( new_max_node_memory_size / 1024.)), int(round(
max_node_memory_size / 1024.))) max_node_memory_size / 1024.)))
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论