added benchmark tests for ssyrk and dsyrk
This commit is contained in:
parent
f16b4f10b6
commit
c6a27bbe64
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue