diff --git a/bin/calculate_floprate.py b/bin/calculate_floprate.py new file mode 100644 index 0000000000000000000000000000000000000000..87824d369b119d9f045af2b2d739fdfee87778c9 --- /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()