From 86b8026f9935f21358066346212d6fa1d001e165 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Thu, 22 Dec 2016 17:03:48 +0100
Subject: [PATCH] Add script to calculate flops

---
 bin/calculate_floprate.py | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 bin/calculate_floprate.py

diff --git a/bin/calculate_floprate.py b/bin/calculate_floprate.py
new file mode 100644
index 00000000..87824d36
--- /dev/null
+++ b/bin/calculate_floprate.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+import pandas
+
+
+def parse_data():
+    frame = pandas.read_csv('timings.csv', header=None, names=('exec', 'kernel', 'what', 'value'), delimiter=' ')
+    time = frame[frame.what == "time"]
+    ops = frame[frame.what != "time"]
+
+    # Here we should take 'min', but right now there are some zeroes written
+    timedata = time.groupby(('exec', 'kernel'))['value'].max()
+    opsdata = ops.groupby(('exec', 'kernel'))['value'].max()
+
+    return timedata, opsdata
+
+
+def calculate_floprate():
+    time, ops = parse_data()
+
+    for key in time.keys():
+        exe, kernel = key
+        print "exe={}".format(exe)
+        print "kernel={}".format(kernel)
+        print "FLOPS={}\n".format(ops[exe][kernel] / time[exe][kernel])
+
+
+if __name__ == '__main__':
+    calculate_floprate()
-- 
GitLab