mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 05:34:18 +08:00
Pull Request resolved: https://github.com/pytorch/pytorch/pull/105429 Approved by: https://github.com/malfet
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
# This script takes csvs produced by parse_logs.py and combines them
|
|
# into a single CSV file
|
|
|
|
import ast
|
|
import csv
|
|
import sys
|
|
from collections import defaultdict
|
|
|
|
assert len(sys.argv) == 3
|
|
|
|
RESULTS = defaultdict(dict)
|
|
|
|
for side, f in zip(["static", "dynamic"], sys.argv[1:]):
|
|
with open(f) as f:
|
|
reader = csv.DictReader(f)
|
|
for row in reader:
|
|
RESULTS[(row["bench"], row["name"])][side] = row
|
|
|
|
fields = ["frame_time", "graph_breaks"]
|
|
|
|
out = csv.DictWriter(
|
|
sys.stdout,
|
|
["bench", "name"] + [f"delta_{n}" for n in fields] + ["static_url", "dynamic_url"],
|
|
dialect="excel",
|
|
)
|
|
out.writeheader()
|
|
|
|
for (bench, name), sides in RESULTS.items():
|
|
if "static" not in sides:
|
|
continue
|
|
if "dynamic" not in sides:
|
|
continue
|
|
if not name:
|
|
out.writerow(
|
|
{
|
|
"static_url": sides["static"]["explain"],
|
|
"dynamic_url": sides["dynamic"]["explain"],
|
|
}
|
|
)
|
|
continue
|
|
row = {"bench": bench, "name": name}
|
|
for f in fields:
|
|
try:
|
|
static = ast.literal_eval(sides["static"][f])
|
|
dynamic = ast.literal_eval(sides["dynamic"][f])
|
|
except SyntaxError:
|
|
continue
|
|
row[f"delta_{f}"] = dynamic - static
|
|
out.writerow(row)
|