| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import pickle
- import pandas as pd
- def get_average_active_secs(df, repeat=1):
- mask = (df > 0.005) & (df < 0.020)
- active = df[mask]
- secs = len(active) / 1000
- return secs / repeat
- def analyze_benchmark(benchmark):
- with open(f"output/test_3_{benchmark}_ckpt.pickle", "rb") as f:
- d = pickle.load(f)
-
- measured_init_times = []
- for messages in d["debug_outputs"]:
- for message in messages:
- if message.startswith("cycle"):
- cycle = message.split()[1]
- cycle = int(cycle)
- freq = 10 * 1000 * 1000
- time = cycle / freq
- measured_init_times.append(time)
-
- return measured_init_times[0]
- def do_analysis(benchmarks):
- results = []
- for benchmark in benchmarks:
- try:
- init_time = analyze_benchmark(benchmark)
- except:
- continue
- results.append({
- "benchmark": benchmark,
- "init time (s)": init_time,
- })
- d = pd.DataFrame(results)
- avg_init_time = d["init time (s)"].mean()
- print(d)
- print("")
- print(f"average init time: {avg_init_time:.5f} s")
- def main():
- benchmarks = ["vFFT", "vConv2d", "vCrc", "vBasicMath", "vSha", "vStringSearch", "vAes", "vMatMul"]
- benchmarks = ["vFFT", "vCrc", "vAes", "vSha"]
- do_analysis(benchmarks)
- if __name__ == "__main__":
- main()
|