Skip to content

Commit

Permalink
feat(lvn): Update benches for better comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
ethanuppal committed Feb 7, 2025
1 parent 032b8d2 commit 96fc29b
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 13 deletions.
10 changes: 10 additions & 0 deletions lesson3/brench.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,13 @@ pipeline = ["bril2json", "../target/debug/tdce", "bril2json", "brili -p {args}"]

[runs.lvn]
pipeline = ["bril2json", "../target/debug/lvn", "bril2json", "brili -p {args}"]

[runs.lvn_then_tdce]
pipeline = [
"bril2json",
"../target/debug/lvn",
"bril2json",
"../target/debug/tdce",
"bril2json",
"brili -p {args}",
]
45 changes: 32 additions & 13 deletions lesson3/check_brench.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,48 @@

rows = list(csv.reader(sys.stdin))

for i in range(1, len(rows), 2):

def check_did_optimize(baseline, new, name):
if new > baseline:
print(f"> \x1b[31m{name} SLOWER ({name}: {new}, baseline: {baseline})\x1b[m")
sys.exit(1)
elif new < baseline:
print(f"> \x1b[32m{name} FASTER ({name}: {new}, baseline: {baseline})\x1b[m")
else:
print(f"> \x1b[33m{name} NOP ({name}: {new}, baseline: {baseline})\x1b[m")


for i in range(1, len(rows), 4):
baseline = rows[i]
tdce = rows[i + 1]
lvn = rows[i + 2]
lvn_tdce = rows[i + 3]

if tdce[2] == "incorrect":
if tdce[2] == "incorrect" or lvn[2] == "incorrect":
print(f"\x1b[31m{baseline[0]} INCORRECT\x1b[m")
sys.exit(1)
elif tdce[2] == "timeout":
elif tdce[2] == "timeout" or lvn[2] == "timeout":
print(f"\x1b[31m{baseline[0]} TIMED OUT\x1b[m")
sys.exit(1)
elif tdce[2] == "missing":
elif tdce[2] == "missing" or lvn[2] == "missing":
print(f"\x1b[31m{baseline[0]} MISSING\x1b[m")
sys.exit(1)

baseline_time = int(baseline[2])
tdce_time = int(tdce[2])
lvn_time = int(lvn[2])
lvn_tdce_time = int(lvn_tdce[2])

if tdce_time > baseline_time:
print(
f"\x1b[31m{baseline[0]} SLOWER (tdce {tdce[2]} instructions, baseline {baseline[2]} instructions)\x1b[m"
)
sys.exit(1)
elif tdce_time < baseline_time:
print(f"\x1b[32m{baseline[0]} FASTER\x1b[m")
else:
print(f"\x1b[33m{baseline[0]} NOP\x1b[m")
print(f"{baseline[0]}")
check_did_optimize(baseline_time, tdce_time, "tdce")
check_did_optimize(baseline_time, lvn_time, "lvn")
check_did_optimize(baseline_time, lvn_tdce_time, "lvn | tdce")
times_scored = sorted(
[
(baseline_time, "baseline"),
(tdce_time, "tdce"),
(lvn_time, "lvn"),
(lvn_tdce_time, "lvn | tdce"),
]
)
print(f" (times in order: {times_scored})")

0 comments on commit 96fc29b

Please sign in to comment.