Merge pull request #745 from jakirkham/minor_fix_scipy_prof

BENCH: Minor fixes in SciPy benchmarks
This commit is contained in:
Zhang Xianyi 2016-01-20 11:24:22 -06:00
commit fa3018c30e
2 changed files with 76 additions and 76 deletions

View File

@ -1,58 +1,58 @@
#!/usr/bin/python #!/usr/bin/env python
import os import os
import sys import sys
import time import time
import numpy import numpy
from numpy import zeros
from numpy.random import randn from numpy.random import randn
from scipy.linalg import blas from scipy.linalg import blas
def run_dsyrk(N,l):
A = randn(N,N).astype('float64') def run_dsyrk(N, l):
C = randn(N,N).astype('float64')
A = randn(N, N).astype('float64', order='F')
C = zeros((N, N), dtype='float64', order='F')
start = time.time(); start = time.time()
for i in range(0,l): for i in range(0, l):
C = blas.dsyrk(1.0,A) blas.dsyrk(1.0, A, c=C, overwrite_c=True)
end = time.time() end = time.time()
timediff = (end -start)
mflops = ( N*N*N) *l / timediff
mflops *= 1e-6
size = "%dx%d" % (N,N) timediff = (end - start)
print("%14s :\t%20f MFlops\t%20f sec" % (size,mflops,timediff)) 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__": if __name__ == "__main__":
N=128 N = 128
NMAX=2048 NMAX = 2048
NINC=128 NINC = 128
LOOPS=1 LOOPS = 1
z=0 z = 0
for arg in sys.argv: for arg in sys.argv:
if z == 1: if z == 1:
N = int(arg) N = int(arg)
elif z == 2: elif z == 2:
NMAX = int(arg) NMAX = int(arg)
elif z == 3: elif z == 3:
NINC = int(arg) NINC = int(arg)
elif z == 4: elif z == 4:
LOOPS = int(arg) LOOPS = int(arg)
z = z + 1 z = z + 1
if 'OPENBLAS_LOOPS' in os.environ: if 'OPENBLAS_LOOPS' in os.environ:
p = os.environ['OPENBLAS_LOOPS'] p = os.environ['OPENBLAS_LOOPS']
if p: if p:
LOOPS = int(p); LOOPS = int(p)
print("From: %d To: %d Step=%d Loops=%d" % (N, NMAX, NINC, LOOPS)) print("From: %d To: %d Step=%d Loops=%d" % (N, NMAX, NINC, LOOPS))
print("\tSIZE\t\t\tFlops\t\t\t\t\tTime") print("\tSIZE\t\t\tFlops\t\t\t\t\tTime")
for i in range (N,NMAX+NINC,NINC):
run_dsyrk(i,LOOPS)
for i in range(N, NMAX + NINC, NINC):
run_dsyrk(i, LOOPS)

View File

@ -1,58 +1,58 @@
#!/usr/bin/python #!/usr/bin/env python
import os import os
import sys import sys
import time import time
import numpy import numpy
from numpy import zeros
from numpy.random import randn from numpy.random import randn
from scipy.linalg import blas from scipy.linalg import blas
def run_ssyrk(N,l):
A = randn(N,N).astype('float32') def run_ssyrk(N, l):
C = randn(N,N).astype('float32')
A = randn(N, N).astype('float32', order='F')
C = zeros((N, N), dtype='float32', order='F')
start = time.time(); start = time.time()
for i in range(0,l): for i in range(0, l):
C = blas.ssyrk(1.0,A) blas.ssyrk(1.0, A, c=C, overwrite_c=True)
end = time.time() end = time.time()
timediff = (end -start)
mflops = ( N*N*N) *l / timediff
mflops *= 1e-6
size = "%dx%d" % (N,N) timediff = (end - start)
print("%14s :\t%20f MFlops\t%20f sec" % (size,mflops,timediff)) 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__": if __name__ == "__main__":
N=128 N = 128
NMAX=2048 NMAX = 2048
NINC=128 NINC = 128
LOOPS=1 LOOPS = 1
z=0 z = 0
for arg in sys.argv: for arg in sys.argv:
if z == 1: if z == 1:
N = int(arg) N = int(arg)
elif z == 2: elif z == 2:
NMAX = int(arg) NMAX = int(arg)
elif z == 3: elif z == 3:
NINC = int(arg) NINC = int(arg)
elif z == 4: elif z == 4:
LOOPS = int(arg) LOOPS = int(arg)
z = z + 1 z = z + 1
if 'OPENBLAS_LOOPS' in os.environ: if 'OPENBLAS_LOOPS' in os.environ:
p = os.environ['OPENBLAS_LOOPS'] p = os.environ['OPENBLAS_LOOPS']
if p: if p:
LOOPS = int(p); LOOPS = int(p)
print("From: %d To: %d Step=%d Loops=%d" % (N, NMAX, NINC, LOOPS)) print("From: %d To: %d Step=%d Loops=%d" % (N, NMAX, NINC, LOOPS))
print("\tSIZE\t\t\tFlops\t\t\t\t\tTime") print("\tSIZE\t\t\tFlops\t\t\t\t\tTime")
for i in range (N,NMAX+NINC,NINC):
run_ssyrk(i,LOOPS)
for i in range(N, NMAX + NINC, NINC):
run_ssyrk(i, LOOPS)