@@ -33,22 +33,26 @@ function matmul_bench!(br, C, A, B, i)
33
33
M, N = size (C); K = size (B,1 );
34
34
n_gflop = M* K* N* 2e-9
35
35
br[1 ,i] = n_gflop / @belapsed mul! ($ C, $ A, $ B)
36
- Cblas = copy (C)
36
+ Cblas = copy (C); fill! (C, NaN )
37
37
br[2 ,i] = n_gflop / @belapsed jgemm! ($ C, $ A, $ B)
38
- @assert C ≈ Cblas " Julia gemm wrong?"
38
+ @assert C ≈ Cblas " Julia gemm wrong?" ; fill! (C, NaN )
39
39
br[3 ,i] = n_gflop / @belapsed cgemm! ($ C, $ A, $ B)
40
- @assert C ≈ Cblas " Polly gemm wrong?"
40
+ @assert C ≈ Cblas " Polly gemm wrong?" ; fill! (C, NaN )
41
41
br[4 ,i] = n_gflop / @belapsed fgemm! ($ C, $ A, $ B)
42
- @assert C ≈ Cblas " Fort gemm wrong?"
42
+ @assert C ≈ Cblas " Fort gemm wrong?" ; fill! (C, NaN )
43
43
br[5 ,i] = n_gflop / @belapsed fgemm_builtin! ($ C, $ A, $ B)
44
- @assert C ≈ Cblas " Fort intrinsic gemm wrong?"
44
+ @assert C ≈ Cblas " Fort intrinsic gemm wrong?" ; fill! (C, NaN )
45
45
br[6 ,i] = n_gflop / @belapsed icgemm! ($ C, $ A, $ B)
46
- @assert C ≈ Cblas " icc gemm wrong?"
46
+ @assert C ≈ Cblas " icc gemm wrong?" ; fill! (C, NaN )
47
47
br[7 ,i] = n_gflop / @belapsed ifgemm! ($ C, $ A, $ B)
48
- @assert C ≈ Cblas " ifort gemm wrong?"
48
+ @assert C ≈ Cblas " ifort gemm wrong?" ; fill! (C, NaN )
49
49
br[8 ,i] = n_gflop / @belapsed ifgemm_builtin! ($ C, $ A, $ B)
50
- @assert C ≈ Cblas " ifort intrinsic gemm wrong?"
51
- br[9 ,i] = n_gflop / @belapsed gemmavx! ($ C, $ A, $ B)
50
+ @assert C ≈ Cblas " ifort intrinsic gemm wrong?" ; fill! (C, NaN )
51
+ br[9 ,i] = n_gflop / @belapsed egemm! ($ C, $ A, $ B)
52
+ @assert C ≈ Cblas " eigen gemm wrong?" ; fill! (C, NaN )
53
+ br[10 ,i] = n_gflop / @belapsed iegemm! ($ C, $ A, $ B)
54
+ @assert C ≈ Cblas " i-eigen gemm wrong?" ; fill! (C, NaN )
55
+ br[11 ,i] = n_gflop / @belapsed gemmavx! ($ C, $ A, $ B)
52
56
@assert C ≈ Cblas " LoopVec gemm wrong?"
53
57
end
54
58
function A_mul_B_bench! (br, s, i)
@@ -87,30 +91,35 @@ function At_mul_Bt_bench!(br, s, i)
87
91
matmul_bench! (br, C, A, B, i)
88
92
end
89
93
94
+ const BLASTESTS = [
95
+ BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" ,
96
+ " Julia" , " Clang-Polly" ,
97
+ " GFortran" , " GFort-intrinsic" ,
98
+ " icc" , " ifort" , " ifort-intrinsic" ,
99
+ " Clang++ & Eigen-3" , " icpc & Eigen-3" ,
100
+ " LoopVectorization"
101
+ ]
102
+
90
103
function benchmark_AmulB (sizes)
91
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " GFort-intrinsic" , " icc" , " ifort" , " ifort-intrinsic" , " LoopVectorization" ]
92
- br = BenchmarkResult (tests, sizes)
104
+ br = BenchmarkResult (BLASTESTS, sizes)
93
105
sm = br. sizedresults. results
94
106
pmap (is -> A_mul_B_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
95
107
br
96
108
end
97
109
function benchmark_AmulBt (sizes)
98
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " GFort-intrinsic" , " icc" , " ifort" , " ifort-intrinsic" , " LoopVectorization" ]
99
- br = BenchmarkResult (tests, sizes)
110
+ br = BenchmarkResult (BLASTESTS, sizes)
100
111
sm = br. sizedresults. results
101
112
pmap (is -> A_mul_Bt_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
102
113
br
103
114
end
104
115
function benchmark_AtmulB (sizes)
105
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " GFort-intrinsic" , " icc" , " ifort" , " ifort-intrinsic" , " LoopVectorization" ]
106
- br = BenchmarkResult (tests, sizes)
116
+ br = BenchmarkResult (BLASTESTS, sizes)
107
117
sm = br. sizedresults. results
108
118
pmap (is -> At_mul_B_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
109
119
br
110
120
end
111
121
function benchmark_AtmulBt (sizes)
112
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " GFort-intrinsic" , " icc" , " ifort" , " ifort-intrinsic" , " LoopVectorization" ]
113
- br = BenchmarkResult (tests, sizes)
122
+ br = BenchmarkResult (BLASTESTS, sizes)
114
123
sm = br. sizedresults. results
115
124
pmap (is -> At_mul_Bt_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
116
125
br
@@ -128,14 +137,18 @@ function dot_bench!(br, s, i)
128
137
br[4 ,i] = n_gflop / @belapsed fdot ($ a, $ b)
129
138
@assert fdot (a,b) ≈ dotblas " Fort dot wrong?"
130
139
br[5 ,i] = n_gflop / @belapsed icdot ($ a, $ b)
131
- @assert cdot (a,b) ≈ dotblas " icc dot wrong?"
140
+ @assert icdot (a,b) ≈ dotblas " icc dot wrong?"
132
141
br[6 ,i] = n_gflop / @belapsed ifdot ($ a, $ b)
133
- @assert fdot (a,b) ≈ dotblas " ifort dot wrong?"
134
- br[7 ,i] = n_gflop / @belapsed jdotavx ($ a, $ b)
142
+ @assert ifdot (a,b) ≈ dotblas " ifort dot wrong?"
143
+ br[7 ,i] = n_gflop / @belapsed edot ($ a, $ b)
144
+ @assert edot (a,b) ≈ dotblas " eigen dot wrong?"
145
+ br[8 ,i] = n_gflop / @belapsed iedot ($ a, $ b)
146
+ @assert iedot (a,b) ≈ dotblas " i-eigen dot wrong?"
147
+ br[9 ,i] = n_gflop / @belapsed jdotavx ($ a, $ b)
135
148
@assert jdotavx (a,b) ≈ dotblas " LoopVec dot wrong?"
136
149
end
137
150
function benchmark_dot (sizes)
138
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " LoopVectorization" ]
151
+ tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " Clang++ & Eigen-3 " , " icpc & Eigen-3 " , " LoopVectorization" ]
139
152
br = BenchmarkResult (tests, sizes)
140
153
sm = br. sizedresults. results
141
154
pmap (is -> dot_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
@@ -156,11 +169,15 @@ function selfdot_bench!(br, s, i)
156
169
@assert cselfdot (a) ≈ dotblas " icc dot wrong?"
157
170
br[6 ,i] = n_gflop / @belapsed ifselfdot ($ a)
158
171
@assert fselfdot (a) ≈ dotblas " ifort dot wrong?"
159
- br[7 ,i] = n_gflop / @belapsed jselfdotavx ($ a)
172
+ br[7 ,i] = n_gflop / @belapsed eselfdot ($ a)
173
+ @assert eselfdot (a) ≈ dotblas " eigen dot wrong?"
174
+ br[8 ,i] = n_gflop / @belapsed ieselfdot ($ a)
175
+ @assert ieselfdot (a) ≈ dotblas " i-eigen dot wrong?"
176
+ br[9 ,i] = n_gflop / @belapsed jselfdotavx ($ a)
160
177
@assert jselfdotavx (a) ≈ dotblas " LoopVec dot wrong?"
161
178
end
162
179
function benchmark_selfdot (sizes)
163
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " LoopVectorization" ]
180
+ tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " Clang++ & Eigen-3 " , " icpc & Eigen-3 " , " LoopVectorization" ]
164
181
br = BenchmarkResult (tests, sizes)
165
182
sm = br. sizedresults. results
166
183
pmap (is -> selfdot_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
@@ -173,22 +190,26 @@ function gemv_bench!(br, x, A, y, i)
173
190
M, N = size (A)
174
191
n_gflop = M* N * 2e-9
175
192
br[1 ,i] = n_gflop / @belapsed mul! ($ x, $ A, $ y)
176
- xblas = copy (x)
193
+ xblas = copy (x); fill! (x, NaN );
177
194
br[2 ,i] = n_gflop / @belapsed jgemv! ($ x, $ A, $ y)
178
- @assert x ≈ xblas " Julia wrong?"
195
+ @assert x ≈ xblas " Julia wrong?" ; fill! (x, NaN );
179
196
br[3 ,i] = n_gflop / @belapsed cgemv! ($ x, $ A, $ y)
180
- @assert x ≈ xblas " Polly wrong?"
197
+ @assert x ≈ xblas " Polly wrong?" ; fill! (x, NaN );
181
198
br[4 ,i] = n_gflop / @belapsed fgemv! ($ x, $ A, $ y)
182
- @assert x ≈ xblas " Fort wrong?"
199
+ @assert x ≈ xblas " Fort wrong?" ; fill! (x, NaN );
183
200
br[5 ,i] = n_gflop / @belapsed fgemv_builtin! ($ x, $ A, $ y)
184
- @assert x ≈ xblas " Fort wrong?"
201
+ @assert x ≈ xblas " Fort wrong?" ; fill! (x, NaN );
185
202
br[6 ,i] = n_gflop / @belapsed icgemv! ($ x, $ A, $ y)
186
- @assert x ≈ xblas " icc wrong?"
203
+ @assert x ≈ xblas " icc wrong?" ; fill! (x, NaN );
187
204
br[7 ,i] = n_gflop / @belapsed ifgemv! ($ x, $ A, $ y)
188
- @assert x ≈ xblas " ifort wrong?"
205
+ @assert x ≈ xblas " ifort wrong?" ; fill! (x, NaN );
189
206
br[8 ,i] = n_gflop / @belapsed ifgemv_builtin! ($ x, $ A, $ y)
190
- @assert x ≈ xblas " ifort wrong?"
191
- br[9 ,i] = n_gflop / @belapsed jgemvavx! ($ x, $ A, $ y)
207
+ @assert x ≈ xblas " ifort wrong?" ; fill! (x, NaN );
208
+ br[9 ,i] = n_gflop / @belapsed egemv! ($ x, $ A, $ y)
209
+ @assert x ≈ xblas " eigen wrong?" ; fill! (x, NaN );
210
+ br[10 ,i] = n_gflop / @belapsed iegemv! ($ x, $ A, $ y)
211
+ @assert x ≈ xblas " i-eigen wrong?" ; fill! (x, NaN );
212
+ br[11 ,i] = n_gflop / @belapsed jgemvavx! ($ x, $ A, $ y)
192
213
@assert x ≈ xblas " LoopVec wrong?"
193
214
end
194
215
function A_mul_vb_bench! (br, s, i)
@@ -206,15 +227,13 @@ function At_mul_vb_bench!(br, s, i)
206
227
gemv_bench! (br, x, A, y, i)
207
228
end
208
229
function benchmark_Amulvb (sizes)
209
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " GFort-intrinsic" , " icc" , " ifort" , " ifort-intrinsic" , " LoopVectorization" ]
210
- br = BenchmarkResult (tests, sizes)
230
+ br = BenchmarkResult (BLASTESTS, sizes)
211
231
sm = br. sizedresults. results
212
232
pmap (is -> A_mul_vb_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
213
233
br
214
234
end
215
235
function benchmark_Atmulvb (sizes)
216
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " GFort-intrinsic" , " icc" , " ifort" , " ifort-intrinsic" , " LoopVectorization" ]
217
- br = BenchmarkResult (tests, sizes)
236
+ br = BenchmarkResult (BLASTESTS, sizes)
218
237
sm = br. sizedresults. results
219
238
pmap (is -> At_mul_vb_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
220
239
br
@@ -233,14 +252,18 @@ function dot3_bench!(br, s, i)
233
252
br[4 ,i] = n_gflop / @belapsed fdot3 ($ x, $ A, $ y)
234
253
@assert fdot3 (x, A, y) ≈ dotblas " Fort dot wrong?"
235
254
br[5 ,i] = n_gflop / @belapsed icdot3 ($ x, $ A, $ y)
236
- @assert cdot3 (x, A, y) ≈ dotblas " icc dot wrong?"
255
+ @assert icdot3 (x, A, y) ≈ dotblas " icc dot wrong?"
237
256
br[6 ,i] = n_gflop / @belapsed ifdot3 ($ x, $ A, $ y)
238
- @assert fdot3 (x, A, y) ≈ dotblas " ifort dot wrong?"
239
- br[7 ,i] = n_gflop / @belapsed jdot3avx ($ x, $ A, $ y)
257
+ @assert ifdot3 (x, A, y) ≈ dotblas " ifort dot wrong?"
258
+ br[7 ,i] = n_gflop / @belapsed edot3 ($ x, $ A, $ y)
259
+ @assert edot3 (x, A, y) ≈ dotblas " eigen dot wrong?"
260
+ br[8 ,i] = n_gflop / @belapsed iedot3 ($ x, $ A, $ y)
261
+ @assert iedot3 (x, A, y) ≈ dotblas " i-eigen dot wrong?"
262
+ br[9 ,i] = n_gflop / @belapsed jdot3avx ($ x, $ A, $ y)
240
263
@assert jdot3avx (x, A, y) ≈ dotblas " LoopVec dot wrong?"
241
264
end
242
265
function benchmark_dot3 (sizes)
243
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " LoopVectorization" ]
266
+ tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " Clang++ & Eigen-3 " , " icpc & Eigen-3 " , " LoopVectorization" ]
244
267
br = BenchmarkResult (tests, sizes)
245
268
sm = br. sizedresults. results
246
269
pmap (is -> dot3_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
@@ -268,14 +291,18 @@ function sse_bench!(br, s, i)
268
291
br[4 ,i] = n_gflop / @belapsed fOLSlp ($ y, $ X, $ β)
269
292
@assert fOLSlp (y, X, β) ≈ lpblas " Fort wrong?"
270
293
br[5 ,i] = n_gflop / @belapsed icOLSlp ($ y, $ X, $ β)
271
- @assert cOLSlp (y, X, β) ≈ lpblas " icc wrong?"
294
+ @assert icOLSlp (y, X, β) ≈ lpblas " icc wrong?"
272
295
br[6 ,i] = n_gflop / @belapsed ifOLSlp ($ y, $ X, $ β)
273
- @assert fOLSlp (y, X, β) ≈ lpblas " ifort wrong?"
274
- br[7 ,i] = n_gflop / @belapsed jOLSlp_avx ($ y, $ X, $ β)
296
+ @assert ifOLSlp (y, X, β) ≈ lpblas " ifort wrong?"
297
+ br[7 ,i] = n_gflop / @belapsed eOLSlp ($ y, $ X, $ β)
298
+ @assert eOLSlp (y, X, β) ≈ lpblas " eigen wrong?"
299
+ br[8 ,i] = n_gflop / @belapsed ieOLSlp ($ y, $ X, $ β)
300
+ @assert ieOLSlp (y, X, β) ≈ lpblas " i-eigen wrong?"
301
+ br[9 ,i] = n_gflop / @belapsed jOLSlp_avx ($ y, $ X, $ β)
275
302
@assert jOLSlp_avx (y, X, β) ≈ lpblas " LoopVec wrong?"
276
303
end
277
304
function benchmark_sse (sizes)
278
- tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " LoopVectorization" ]
305
+ tests = [BLAS. vendor () === :mkl ? " IntelMKL" : " OpenBLAS" , " Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " Clang++ & Eigen-3 " , " icpc & Eigen-3 " , " LoopVectorization" ]
279
306
br = BenchmarkResult (tests, sizes)
280
307
sm = br. sizedresults. results
281
308
pmap (is -> sse_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
@@ -312,20 +339,24 @@ function aplusBc_bench!(br, s, i)
312
339
c′ = c' ; D = similar (B)
313
340
n_gflop = 2e-9 * M* N
314
341
br[1 ,i] = n_gflop / @belapsed @. $ D = $ a + $ B * $ c′
315
- Dcopy = copy (D)
342
+ Dcopy = copy (D); fill! (D, NaN );
316
343
br[2 ,i] = n_gflop / @belapsed caplusBc! ($ D, $ a, $ B, $ c)
317
- @assert D ≈ Dcopy " Polly wrong?"
344
+ @assert D ≈ Dcopy " Polly wrong?" ; fill! (D, NaN );
318
345
br[3 ,i] = n_gflop / @belapsed faplusBc! ($ D, $ a, $ B, $ c)
319
- @assert D ≈ Dcopy " Fort wrong?"
346
+ @assert D ≈ Dcopy " Fort wrong?" ; fill! (D, NaN );
320
347
br[4 ,i] = n_gflop / @belapsed icaplusBc! ($ D, $ a, $ B, $ c)
321
- @assert D ≈ Dcopy " icc wrong?"
348
+ @assert D ≈ Dcopy " icc wrong?" ; fill! (D, NaN );
322
349
br[5 ,i] = n_gflop / @belapsed ifaplusBc! ($ D, $ a, $ B, $ c)
323
- @assert D ≈ Dcopy " ifort wrong?"
324
- br[6 ,i] = n_gflop / @belapsed @avx @. $ D = $ a + $ B * $ c′
350
+ @assert D ≈ Dcopy " ifort wrong?" ; fill! (D, NaN );
351
+ br[6 ,i] = n_gflop / @belapsed eaplusBc! ($ D, $ a, $ B, $ c)
352
+ @assert D ≈ Dcopy " eigen wrong?" ; fill! (D, NaN );
353
+ br[7 ,i] = n_gflop / @belapsed ieaplusBc! ($ D, $ a, $ B, $ c)
354
+ @assert D ≈ Dcopy " i-eigen wrong?" ; fill! (D, NaN );
355
+ br[8 ,i] = n_gflop / @belapsed @avx @. $ D = $ a + $ B * $ c′
325
356
@assert D ≈ Dcopy " LoopVec wrong?"
326
357
end
327
358
function benchmark_aplusBc (sizes)
328
- tests = [" Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " LoopVectorization" ]
359
+ tests = [" Julia" , " Clang-Polly" , " GFortran" , " icc" , " ifort" , " Clang++ & Eigen-3 " , " icpc & Eigen-3 " , " LoopVectorization" ]
329
360
br = BenchmarkResult (tests, sizes)
330
361
sm = br. sizedresults. results
331
362
pmap (is -> aplusBc_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
@@ -336,24 +367,28 @@ function AplusAt_bench!(br, s, i)
336
367
A = rand (s,s); B = similar (A)
337
368
n_gflop = 1e-9 * s^ 2
338
369
br[1 ,i] = n_gflop / @belapsed @. $ B = $ A + $ A'
339
- baseB = copy (B)
370
+ baseB = copy (B); fill! (B, NaN );
340
371
br[2 ,i] = n_gflop / @belapsed cAplusAt! ($ B, $ A)
341
- @assert B ≈ baseB " Clang wrong?"
372
+ @assert B ≈ baseB " Clang wrong?" ; fill! (B, NaN );
342
373
br[3 ,i] = n_gflop / @belapsed fAplusAt! ($ B, $ A)
343
- @assert B ≈ baseB " Fort wrong?"
374
+ @assert B ≈ baseB " Fort wrong?" ; fill! (B, NaN );
344
375
br[4 ,i] = n_gflop / @belapsed fAplusAt_builtin! ($ B, $ A)
345
- @assert B ≈ baseB " Fort-builtin wrong?"
376
+ @assert B ≈ baseB " Fort-builtin wrong?" ; fill! (B, NaN );
346
377
br[5 ,i] = n_gflop / @belapsed icAplusAt! ($ B, $ A)
347
- @assert B ≈ baseB " icc wrong?"
378
+ @assert B ≈ baseB " icc wrong?" ; fill! (B, NaN );
348
379
br[6 ,i] = n_gflop / @belapsed ifAplusAt! ($ B, $ A)
349
- @assert B ≈ baseB " ifort wrong?"
380
+ @assert B ≈ baseB " ifort wrong?" ; fill! (B, NaN );
350
381
br[7 ,i] = n_gflop / @belapsed ifAplusAt_builtin! ($ B, $ A)
351
- @assert B ≈ baseB " ifort-builtin wrong?"
352
- br[8 ,i] = n_gflop / @belapsed @avx @. $ B = $ A + $ A'
382
+ @assert B ≈ baseB " ifort-builtin wrong?" ; fill! (B, NaN );
383
+ br[8 ,i] = n_gflop / @belapsed eAplusAt! ($ B, $ A)
384
+ @assert B ≈ baseB " eigen wrong?" ; fill! (B, NaN );
385
+ br[9 ,i] = n_gflop / @belapsed ieAplusAt! ($ B, $ A)
386
+ @assert B ≈ baseB " i-eigen wrong?" ; fill! (B, NaN );
387
+ br[10 ,i] = n_gflop / @belapsed @avx @. $ B = $ A + $ A'
353
388
@assert B ≈ baseB " LoopVec wrong?"
354
389
end
355
390
function benchmark_AplusAt (sizes)
356
- tests = [" Julia" , " Clang-Polly" , " GFortran" , " GFortran-builtin" , " icc" , " ifort" , " ifort-builtin" , " LoopVectorization" ]
391
+ tests = [" Julia" , " Clang-Polly" , " GFortran" , " GFortran-builtin" , " icc" , " ifort" , " ifort-builtin" , " Clang++ & Eigen-3 " , " icpc & Eigen-3 " , " LoopVectorization" ]
357
392
br = BenchmarkResult (tests, sizes)
358
393
sm = br. sizedresults. results
359
394
pmap (is -> AplusAt_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
0 commit comments