46 lines
1.5 KiB
Python
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")
|