MCPcopy Create free account
hub / github.com/1a1a11a/libCacheSim / _load_reuse_data

Function _load_reuse_data

scripts/traceAnalysis/reuse.py:28–91  ·  view source on GitHub ↗

load reuse distribution plot data from C++ computation Args: datapath (str): the path of reuse data file Returns: Tuple[dict, dict]: reuse_rtime_count, reuse_vtime_count

(
    datapath: str, ignore_compulsory_miss: bool = True
)

Source from the content-addressed store, hash-verified

26
27
28def _load_reuse_data(
29 datapath: str, ignore_compulsory_miss: bool = True
30) -> Tuple[dict, dict]:
31 """load reuse distribution plot data from C++ computation
32
33 Args:
34 datapath (str): the path of reuse data file
35
36 Returns:
37 Tuple[dict, dict]: reuse_rtime_count, reuse_vtime_count
38
39 """
40
41 ifile = open(datapath)
42 data_line = ifile.readline()
43 desc_line = ifile.readline()
44 m = re.match(r"# reuse real time: freq \(time granularity (?P<tg>\d+)\)", desc_line)
45 assert m is not None, (
46 "the input file might not be reuse data file, desc line "
47 + desc_line
48 + " data "
49 + datapath
50 )
51
52 rtime_granularity = int(m.group("tg"))
53 log_base = 1.5
54
55 reuse_rtime_count, reuse_vtime_count = {}, {}
56
57 for line in ifile:
58 if line[0] == "#" and "virtual time" in line:
59 m = re.match(
60 r"# reuse virtual time: freq \(log base (?P<lb>\d+\.?\d*)\)", line
61 )
62 assert m is not None, "the input file might not be "\
63 f"reuse data file, desc line {line} data {datapath}"
64 log_base = float(m.group("lb"))
65 break
66 elif not line.strip():
67 continue
68 else:
69 reuse_time, count = [int(i) for i in line.split(":")]
70 if reuse_time < -1:
71 # it can be -1, which indicates compulsory misses
72 print("find negative reuse time " + line)
73 if reuse_time == -1 and not ignore_compulsory_miss:
74 continue
75 reuse_rtime_count[reuse_time * rtime_granularity] = count
76
77 for line in ifile:
78 if not line.strip():
79 continue
80 else:
81 reuse_time, count = [int(i) for i in line.split(":")]
82 if reuse_time < -1:
83 # it can be -1, which indicates compulsory misses
84 print("find negative reuse time " + line)
85 if reuse_time == -1 and not ignore_compulsory_miss:

Callers 1

plot_reuseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected