@@ -107,45 +107,26 @@ def time_numpy_linalg_lstsq_a__b_float64(self):
107
107
108
108
class Einsum (Benchmark ):
109
109
param_names = ['dtype' ]
110
- params = [[np .float32 , np . float64 ]]
110
+ params = [[np .float64 ]]
111
111
def setup (self , dtype ):
112
- self .a = np .arange (3000 , dtype = dtype )
113
- self .b = np .arange (2990 , dtype = dtype )
112
+ self .a = np .arange (2900 , dtype = dtype )
113
+ self .b = np .arange (3000 , dtype = dtype )
114
114
self .c = np .arange (24000 , dtype = dtype ).reshape (20 , 30 , 40 )
115
115
self .c1 = np .arange (1200 , dtype = dtype ).reshape (30 , 40 )
116
- self .c2 = np .arange (40 , dtype = dtype )
117
- self .c3 = np .arange (30000 , dtype = dtype ).reshape (30 , 20 , 50 )
118
- self .d = np .arange (2 * 1000 , dtype = dtype ).reshape (2 , 1000 )
119
- self .e = np .arange (100 * 100 , dtype = dtype ).reshape (100 , 100 )
116
+ self .d = np .arange (10000 , dtype = dtype ).reshape (10 ,100 ,10 )
120
117
121
- #outer(a,b)
118
+ #outer(a,b): trigger sum_of_products_contig_stride0_outcontig_two
122
119
def time_einsum_outer (self , dtype ):
123
120
np .einsum ("i,j" , self .a , self .b , optimize = True )
124
121
125
- #inner(a,b)
126
- def time_einsum_inner (self , dtype ):
127
- np .einsum ("...i, ...i" , self .c , self .c2 , optimize = True )
128
-
129
- # swap axes
130
- def time_einsum_swap (self , dtype ):
131
- np .einsum ("ijk->jik" , self .c , optimize = True )
132
-
133
- # sum(a, axis=0)
134
- def time_einsum_sum (self , dtype ):
135
- np .einsum ("i...->..." , self .d , optimize = True )
136
-
137
- # trace(a)
138
- def time_einsum_trace (self , dtype ):
139
- np .einsum ("ii" , self .e , optimize = True )
140
-
141
- # multiply(a, b)
122
+ # multiply(a, b):trigger sum_of_products_contig_two
142
123
def time_einsum_multiply (self , dtype ):
143
124
np .einsum ("..., ..." , self .c1 , self .c , optimize = True )
144
125
145
- # tensordot(a, b)
146
- def time_einsum_tensordot (self , dtype ):
147
- np .einsum ("ijk, jil -> kl " , self . c , self .c3 , optimize = True )
126
+ # sum and multiply:trigger sum_of_products_contig_stride0_outstride0_two
127
+ def time_einsum_sum_mul (self , dtype ):
128
+ np .einsum (",i...-> " , 300 , self .d , optimize = True )
148
129
149
- # a.dot(b)
150
- def time_einsum_matmat (self , dtype ):
151
- np .einsum ("ij,jk " , self .e , self . e , optimize = True )
130
+ # sum and multiply:trigger sum_of_products_stride0_contig_outstride0_two
131
+ def time_einsum_sum_mul2 (self , dtype ):
132
+ np .einsum ("i...,-> " , self .d , 300 , optimize = True )
0 commit comments