Skip to content

Commit aebf322

Browse files
author
Michael Gilbert
committed
LoopTree latency analysis bugfix
1 parent ada06ac commit aebf322

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

pytimeloop/isl/singular.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55

66
def get_sum_of_pw_qpolynomial(pw_qp):
7+
"""Get the sum of pw_qp over all points in the domain."""
78
if isinstance(pw_qp, Number):
89
return pw_qp
910

pytimeloop/looptree/latency/processors.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
1+
import pprint
2+
13
import islpy as isl
24

35
from bindings.looptree import PipelineSpatialTag
46
from pytimeloop.isl.sum import sum_until_idx, make_reduction_map
57
from pytimeloop.isl.qpolynomial import from_pw_qpolynomial_fold
68

79
def process_sequential_latency(top_idx: int, latencies):
8-
dim_tags = latencies[0][0]
9-
summed_latency = sum(map(lambda pair: pair[1], latencies))
10-
return dim_tags[:top_idx], sum_until_idx(top_idx, summed_latency)
10+
common_dim_tags = latencies[0][0][:top_idx]
11+
try:
12+
total_sequential_latency = sum(
13+
sum_until_idx(top_idx, latency)
14+
for dim_tags, latency in latencies
15+
)
16+
except:
17+
print('Bad input:')
18+
pprint.pp(latencies)
19+
raise
20+
return common_dim_tags, total_sequential_latency
1121

1222

1323
def process_pipeline_latency(top_idx: int, latencies):

0 commit comments

Comments
 (0)