1#!/usr/bin/python
2
3import os
4import sys
5import time
6import numpy
7from numpy.random import randn
8
9def run_sdot(N,l):
10
11	A = randn(N).astype('float32')
12	B = randn(N).astype('float32')
13
14	start = time.time();
15	for i in range(0,l):
16		ref = numpy.dot(A,B)
17	end = time.time()
18
19	timediff = (end -start)
20	mflops = ( 2*N ) *l / timediff
21	mflops *= 1e-6
22
23	size = "%d" % (N)
24	print("%14s :\t%20f MFlops\t%20f sec" % (size,mflops,timediff))
25
26
27if __name__ == "__main__":
28	N=128
29	NMAX=2048
30	NINC=128
31	LOOPS=1
32
33	z=0
34	for arg in sys.argv:
35		if z == 1:
36			N = int(arg)
37		elif z == 2:
38			NMAX = int(arg)
39		elif z == 3:
40			NINC = int(arg)
41		elif z == 4:
42			LOOPS = int(arg)
43
44		z = z + 1
45
46	if 'OPENBLAS_LOOPS' in os.environ:
47		p = os.environ['OPENBLAS_LOOPS']
48		if p:
49			LOOPS = int(p);
50
51	print("From: %d To: %d Step=%d Loops=%d" % (N, NMAX, NINC, LOOPS))
52	print("\tSIZE\t\t\tFlops\t\t\t\t\tTime")
53
54	for i in range (N,NMAX+NINC,NINC):
55		run_sdot(i,LOOPS)
56
57