Files
gem5/latex_table.py
2024-03-22 18:42:18 +01:00

46 lines
1.5 KiB
Python

import matplotlib.pyplot as plt
import seaborn as sns
import polars as pl
import numpy as np
from pathlib import Path
workload_order = {val: idx for idx, val in enumerate(["vadd", "vmul", "haxpy", "gemv", "gemv_layers"])}
workload_mapping = {
"vadd": "VADD",
"vmul": "VMUL",
"haxpy": "HAXPY",
"gemv": "GEMV",
"gemv_layers": "DNN",
}
out_directory = Path("tables_out")
df = pl.read_csv("pim_results.csv")
df = df.select(["workload", "level", "system", "frequency", "ticks"])
for name, data in df.group_by(["frequency"], maintain_order=True):
data = data.pivot(index=["workload", "level"], columns=["system"], values=["ticks"])
data = data.sort(pl.col("workload").replace(workload_order))
data = data.with_columns(pl.col("workload").replace(workload_mapping))
data = data.rename({"HBM": "hbm", "PIM-HBM": "pim"})
print(data)
data.write_csv(out_directory / f"simulations_{name[0]}.csv")
vega_df = pl.read_csv("vega_results.csv")
vega_df = vega_df.with_columns(system=pl.lit("vega"))
tesla_df = pl.read_csv("tesla_results.csv")
tesla_df = tesla_df.with_columns(system=pl.lit("tesla"))
torch_df = pl.concat([vega_df, tesla_df])
torch_df = torch_df.pivot(index=["workload", "level"], columns=["system"], values=["runtime"])
torch_df = torch_df.sort(pl.col("workload").replace(workload_order))
torch_df = torch_df.with_columns(pl.col("workload").replace(workload_mapping))
print(torch_df)
torch_df.write_csv(out_directory / "torch.csv")