ci_performance.py 1.57 KB
Newer Older
1
2
3
4
import subprocess
import re
from tabulate import tabulate

5
6
7
8
9
import os

env = os.environ.copy()
env["TILELANG_CLEAR_CACHE"] = "1"

10
11
12

def parse_output(output):
    data = {}
13
    for line in output.split("\n"):
14
        line = line.strip()
15
16
17
18
19
20
21
22
23
24
25
        if line.startswith("Latency:"):
            match = re.search(r"Latency: ([\d.]+)", line)
            data["latency"] = match.group(1) if match else "N/A"
        elif line.startswith("TFlops:"):
            match = re.search(r"TFlops: ([\d.]+)", line)
            data["best_tflops"] = match.group(1) if match else "N/A"
        elif line.startswith("Config:"):
            data["config"] = line.split("Config: ")[-1]
        elif line.startswith("Reference TFlops:"):
            match = re.search(r"Reference TFlops: ([\d.]+)", line)
            data["ref_tflops"] = match.group(1) if match else "N/A"
26
27
28
    return data


29
output_v1 = subprocess.run(["./tl/bin/python", "./maint/scripts/performance.py"], capture_output=True, text=True, env=env).stdout
30
31
data_v1 = parse_output(output_v1)

32
output_v2 = subprocess.run(["./tll/bin/python", "./maint/scripts/performance.py"], capture_output=True, text=True, env=env).stdout
33
34
data_v2 = parse_output(output_v2)

35
36
37
38
table = [
    ["original", data_v1["latency"], data_v1["best_tflops"], data_v1["ref_tflops"], data_v1["config"]],
    ["current", data_v2["latency"], data_v2["best_tflops"], data_v2["ref_tflops"], data_v2["config"]],
]
39
40
41
42

headers = ["version", "Best Latency (s)", "Best TFlops", "Reference TFlops", "Best Config"]

print(tabulate(table, headers=headers, tablefmt="github", stralign="left", numalign="decimal"))