import subprocess import re from tabulate import tabulate import os env = os.environ.copy() env["TILELANG_CLEAR_CACHE"] = "1" def parse_output(output): data = {} for line in output.split("\n"): line = line.strip() 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" return data output_v1 = subprocess.run(["./tl/bin/python", "./maint/scripts/performance.py"], capture_output=True, text=True, env=env).stdout data_v1 = parse_output(output_v1) output_v2 = subprocess.run(["./tll/bin/python", "./maint/scripts/performance.py"], capture_output=True, text=True, env=env).stdout data_v2 = parse_output(output_v2) 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"]], ] headers = ["version", "Best Latency (s)", "Best TFlops", "Reference TFlops", "Best Config"] print(tabulate(table, headers=headers, tablefmt="github", stralign="left", numalign="decimal"))