Skip to content

Commit b8aaf2c

Browse files
author
Michael Gilbert
committed
[looptree] Bugfixes for latency and capacity analysis
1 parent aebf322 commit b8aaf2c

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

pytimeloop/looptree/capacity/aggregators.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ def compute_max(child_caps, caps):
2424
def compute_total(child_caps, caps):
2525
for child_cap in child_caps:
2626
for buf, v in child_cap.items():
27-
caps[buf] += v
27+
if buf in caps:
28+
caps[buf] += v
29+
else:
30+
caps[buf] = v
2831

2932

3033
CAPACITY_AGGREGATORS = {

pytimeloop/looptree/latency/processors.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,22 @@ def process_sequential_latency(top_idx: int, latencies):
2323
def process_pipeline_latency(top_idx: int, latencies):
2424
sequential_latency = process_sequential_latency(top_idx, latencies)[1]
2525

26-
summed_latency = sum(map(lambda pair: pair[1], latencies))
27-
2826
all_dim_tags = latencies[0][0]
2927
dim_tags = all_dim_tags[:]
3028
for pipeline_idx in range(len(dim_tags)):
3129
if isinstance(dim_tags[pipeline_idx], PipelineSpatialTag):
3230
break
33-
summed_latency = sum_until_idx(pipeline_idx+1, summed_latency)
34-
dim_tags = dim_tags[:pipeline_idx+1]
31+
32+
try:
33+
dim_tags = dim_tags[:pipeline_idx+1]
34+
summed_latency = sum(
35+
sum_until_idx(pipeline_idx+1, latency)
36+
for tags, latency in latencies
37+
)
38+
except:
39+
print('Bad input:')
40+
pprint.pp(latencies)
41+
raise
3542

3643
space = summed_latency.get_domain_space()
3744
hidden_latency_map = make_hidden_latency_map(dim_tags,

0 commit comments

Comments
 (0)