Adding scripts, commands, and logging scaffolding"
This commit is contained in:
34
scripts/70_diff_table.py
Normal file
34
scripts/70_diff_table.py
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python3
|
||||
import csv, os
|
||||
root = os.path.dirname(os.path.dirname(__file__))
|
||||
src = os.path.join(root, "results", "phase3_summary_energy.csv")
|
||||
dst = os.path.join(root, "results", "phase3_drowsy_deltas.csv")
|
||||
|
||||
# group by key without drowsy; compare d0 vs d1
|
||||
from collections import defaultdict
|
||||
bykey = defaultdict(dict)
|
||||
|
||||
with open(src) as f:
|
||||
r=csv.DictReader(f)
|
||||
for row in r:
|
||||
key = (row['workload'], row['core'], row['dvfs'], row['l2'])
|
||||
bykey[key][row['drowsy']] = row
|
||||
|
||||
rows=[]
|
||||
for k, d in bykey.items():
|
||||
if '0' in d and '1' in d:
|
||||
a=d['0']; b=d['1']
|
||||
e0=float(a['energy_J']); e1=float(b['energy_J'])
|
||||
edp0=float(a['edp']); edp1=float(b['edp'])
|
||||
rows.append({
|
||||
'workload':k[0],'core':k[1],'dvfs':k[2],'l2':k[3],
|
||||
'energy_drop_%': f"{100*(e0-e1)/e0:.2f}",
|
||||
'edp_drop_%': f"{100*(edp0-edp1)/edp0:.2f}"
|
||||
})
|
||||
|
||||
with open(dst,'w',newline='') as f:
|
||||
w=csv.DictWriter(f, fieldnames=list(rows[0].keys()))
|
||||
w.writeheader(); w.writerows(rows)
|
||||
|
||||
print(f"[delta] wrote {dst}")
|
||||
|
||||
Reference in New Issue
Block a user