1- """npbench wrapper: GEMVER (vector multiplication and matrix addition) — mkl_umath ops: outer.
1+ """npbench wrapper: GEMVER (vector multiplication and matrix addition).
2+
3+ mkl_umath ops: outer.
24
35Preset sizes from npbench bench_info/gemver.json:
46 M: N=3_000
@@ -16,15 +18,15 @@ def _initialize(N, datatype=np.float64):
1618 alpha = datatype (1.5 )
1719 beta = datatype (1.2 )
1820 fn = datatype (N )
19- A = np .fromfunction (lambda i , j : (i * j % N ) / N , (N , N ), dtype = datatype )
21+ A = np .fromfunction (lambda i , j : (i * j % N ) / N , (N , N ), dtype = datatype )
2022 u1 = np .fromfunction (lambda i : i , (N ,), dtype = datatype )
2123 u2 = np .fromfunction (lambda i : ((i + 1 ) / fn ) / 2.0 , (N ,), dtype = datatype )
2224 v1 = np .fromfunction (lambda i : ((i + 1 ) / fn ) / 4.0 , (N ,), dtype = datatype )
2325 v2 = np .fromfunction (lambda i : ((i + 1 ) / fn ) / 6.0 , (N ,), dtype = datatype )
24- w = np .zeros ((N ,), dtype = datatype )
25- x = np .zeros ((N ,), dtype = datatype )
26- y = np .fromfunction (lambda i : ((i + 1 ) / fn ) / 8.0 , (N ,), dtype = datatype )
27- z = np .fromfunction (lambda i : ((i + 1 ) / fn ) / 9.0 , (N ,), dtype = datatype )
26+ w = np .zeros ((N ,), dtype = datatype )
27+ x = np .zeros ((N ,), dtype = datatype )
28+ y = np .fromfunction (lambda i : ((i + 1 ) / fn ) / 8.0 , (N ,), dtype = datatype )
29+ z = np .fromfunction (lambda i : ((i + 1 ) / fn ) / 9.0 , (N ,), dtype = datatype )
2830 return alpha , beta , A , u1 , v1 , u2 , v2 , w , x , y , z
2931
3032
@@ -54,20 +56,28 @@ def setup_cache(self):
5456 def setup (self , cache , preset ):
5557 alpha , beta , A , u1 , v1 , u2 , v2 , w , x , y , z = cache [preset ]
5658 self .alpha = alpha
57- self .beta = beta
58- self .A = A .copy () # mutated: A += outer(u1,v1) + outer(u2,v2)
59+ self .beta = beta
60+ self .A = A .copy () # mutated: A += outer(u1,v1) + outer(u2,v2)
5961 self .u1 = u1
6062 self .v1 = v1
6163 self .u2 = u2
6264 self .v2 = v2
63- self .w = w .copy () # mutated: w += alpha * A @ x
64- self .x = x .copy () # mutated: x += beta * y @ A + z
65- self .y = y
66- self .z = z
65+ self .w = w .copy () # mutated: w += alpha * A @ x
66+ self .x = x .copy () # mutated: x += beta * y @ A + z
67+ self .y = y
68+ self .z = z
6769
6870 def time_gemver (self , cache , preset ):
6971 _kernel (
70- self .alpha , self .beta ,
71- self .A , self .u1 , self .v1 , self .u2 , self .v2 ,
72- self .w , self .x , self .y , self .z ,
72+ self .alpha ,
73+ self .beta ,
74+ self .A ,
75+ self .u1 ,
76+ self .v1 ,
77+ self .u2 ,
78+ self .v2 ,
79+ self .w ,
80+ self .x ,
81+ self .y ,
82+ self .z ,
7383 )
0 commit comments