Skip to content

Commit a542219

Browse files
committed
Add main function to func_stats
1 parent 0976ac6 commit a542219

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

util/analyze/lib/block_stats.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,4 @@ def compute_block_stats(logs: Logs):
8888

8989
results = utils.foreach_bench(compute_block_stats, args.logs)
9090

91-
args.format(result)
91+
args.format(results)

util/analyze/lib/func_stats.py

100644100755
+27-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#!/usr/bin/env python3
22

3+
import argparse
34
import re
45
from itertools import chain
56
from typing import Iterable, List
67

7-
from analyze import Block
8+
import analyze
9+
from analyze import Block, ioutils, utils
810

911
'''
1012
Function-level stats (not Block, Logs, or Benchmark level)
@@ -25,3 +27,27 @@ def function_occupancy_info(logs: Iterable[Block]) -> List[int]:
2527
def avg_occupancy(logs: Iterable[Block]) -> float:
2628
occ_info = function_occupancy_info(logs)
2729
return sum(occ_info) / len(occ_info) if occ_info else 0.0
30+
31+
32+
def raw_main(argv: List[str] = []):
33+
parser = argparse.ArgumentParser(
34+
description='Computes the block stats for the logs')
35+
parser.add_argument('--stat', choices=('occ',),
36+
help='Which stat to compute')
37+
parser.add_argument('logs', help='The logs to analyze')
38+
ioutils.add_output_format_arg(parser)
39+
args = analyze.parse_args(parser, 'logs')
40+
41+
STATS = {
42+
'occ': ('Average Occupancy', avg_occupancy),
43+
}
44+
label, f = STATS[args.stat]
45+
46+
results = utils.foreach_bench(lambda bench: {label: f(bench)}, args.logs)
47+
48+
args.format(results)
49+
50+
51+
if __name__ == '__main__':
52+
import sys
53+
raw_main(sys.argv)

0 commit comments

Comments
 (0)