added benchmark tests for ssyrk and dsyrk
authorWerner Saar <wernsaar@googlemail.com>
Sun, 10 Jan 2016 11:19:03 +0000 (12:19 +0100)
committerWerner Saar <wernsaar@googlemail.com>
Sun, 10 Jan 2016 11:19:03 +0000 (12:19 +0100)
benchmark/scripts/SCIPY/dsyrk.py [new file with mode: 0755]
benchmark/scripts/SCIPY/ssyrk.py [new file with mode: 0755]

diff --git a/benchmark/scripts/SCIPY/dsyrk.py b/benchmark/scripts/SCIPY/dsyrk.py
new file mode 100755 (executable)
index 0000000..1ff481e
--- /dev/null
@@ -0,0 +1,58 @@
+#!/usr/bin/python
+
+import os
+import sys
+import time
+import numpy
+from numpy.random import randn
+from scipy.linalg import blas
+
+def run_dsyrk(N,l):
+
+       A = randn(N,N).astype('float64')
+       C = randn(N,N).astype('float64')
+
+
+       start = time.time();
+       for i in range(0,l):
+               C = blas.dsyrk(1.0,A)
+       end = time.time()
+       
+       timediff = (end -start) 
+       mflops = ( N*N*N) *l / timediff
+       mflops *= 1e-6
+
+       size = "%dx%d" % (N,N)
+       print("%14s :\t%20f MFlops\t%20f sec" % (size,mflops,timediff))
+
+
+if __name__ == "__main__":
+       N=128
+       NMAX=2048
+       NINC=128
+       LOOPS=1
+
+       z=0
+       for arg in sys.argv:
+               if z == 1:
+                       N = int(arg)
+               elif z == 2:
+                       NMAX = int(arg)
+               elif z == 3:
+                       NINC = int(arg)
+               elif z == 4:
+                       LOOPS = int(arg)
+
+               z = z + 1
+
+       if 'OPENBLAS_LOOPS' in os.environ:
+               p = os.environ['OPENBLAS_LOOPS']
+               if p:
+                       LOOPS = int(p);
+
+       print("From: %d To: %d Step=%d Loops=%d" % (N, NMAX, NINC, LOOPS))
+       print("\tSIZE\t\t\tFlops\t\t\t\t\tTime")
+
+       for i in range (N,NMAX+NINC,NINC):
+               run_dsyrk(i,LOOPS)
+
diff --git a/benchmark/scripts/SCIPY/ssyrk.py b/benchmark/scripts/SCIPY/ssyrk.py
new file mode 100755 (executable)
index 0000000..1dee9e2
--- /dev/null
@@ -0,0 +1,58 @@
+#!/usr/bin/python
+
+import os
+import sys
+import time
+import numpy
+from numpy.random import randn
+from scipy.linalg import blas
+
+def run_ssyrk(N,l):
+
+       A = randn(N,N).astype('float32')
+       C = randn(N,N).astype('float32')
+
+
+       start = time.time();
+       for i in range(0,l):
+               C = blas.ssyrk(1.0,A)
+       end = time.time()
+       
+       timediff = (end -start) 
+       mflops = ( N*N*N) *l / timediff
+       mflops *= 1e-6
+
+       size = "%dx%d" % (N,N)
+       print("%14s :\t%20f MFlops\t%20f sec" % (size,mflops,timediff))
+
+
+if __name__ == "__main__":
+       N=128
+       NMAX=2048
+       NINC=128
+       LOOPS=1
+
+       z=0
+       for arg in sys.argv:
+               if z == 1:
+                       N = int(arg)
+               elif z == 2:
+                       NMAX = int(arg)
+               elif z == 3:
+                       NINC = int(arg)
+               elif z == 4:
+                       LOOPS = int(arg)
+
+               z = z + 1
+
+       if 'OPENBLAS_LOOPS' in os.environ:
+               p = os.environ['OPENBLAS_LOOPS']
+               if p:
+                       LOOPS = int(p);
+
+       print("From: %d To: %d Step=%d Loops=%d" % (N, NMAX, NINC, LOOPS))
+       print("\tSIZE\t\t\tFlops\t\t\t\t\tTime")
+
+       for i in range (N,NMAX+NINC,NINC):
+               run_ssyrk(i,LOOPS)
+