@@ -103,39 +103,6 @@ function At_mul_Bt_bench!(br, s, i)
103
103
matmul_bench! (br, C, A, B, i)
104
104
end
105
105
106
- blastests () = [
107
- " LoopVectorization" ,
108
- " Julia" , " Clang" ,
109
- " GFortran" , " icc" , " ifort" ,
110
- " g++ & Eigen-3" , " clang++ & Eigen-3" ,
111
- " GFortran-builtin" , " ifort-builtin" ,
112
- " OpenBLAS" , " MKL"
113
- ]
114
-
115
- function benchmark_AmulB (sizes)
116
- br = BenchmarkResult (blastests (), sizes)
117
- sm = br. sizedresults. results
118
- pmap (is -> A_mul_B_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
119
- br
120
- end
121
- function benchmark_AmulBt (sizes)
122
- br = BenchmarkResult (blastests (), sizes)
123
- sm = br. sizedresults. results
124
- pmap (is -> A_mul_Bt_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
125
- br
126
- end
127
- function benchmark_AtmulB (sizes)
128
- br = BenchmarkResult (blastests (), sizes)
129
- sm = br. sizedresults. results
130
- pmap (is -> At_mul_B_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
131
- br
132
- end
133
- function benchmark_AtmulBt (sizes)
134
- br = BenchmarkResult (blastests (), sizes)
135
- sm = br. sizedresults. results
136
- pmap (is -> At_mul_Bt_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
137
- br
138
- end
139
106
140
107
function dot_bench! (br, s, i)
141
108
a = rand (s); b = rand (s);
@@ -159,13 +126,6 @@ function dot_bench!(br, s, i)
159
126
@assert iedot (a,b) ≈ dotblas " i-eigen dot wrong?"
160
127
# br[9,i] = n_gflop / @belapsed dot($a, $b)
161
128
end
162
- function benchmark_dot (sizes)
163
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" , " g++ & Eigen-3" , " clang++ & Eigen-3" ]# , "OpenBLAS"]
164
- br = BenchmarkResult (tests, sizes)
165
- sm = br. sizedresults. results
166
- pmap (is -> dot_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
167
- br
168
- end
169
129
function selfdot_bench! (br, s, i)
170
130
a = rand (s); b = rand (s);
171
131
dotblas = dot (a, a)
@@ -188,13 +148,6 @@ function selfdot_bench!(br, s, i)
188
148
@assert ieselfdot (a) ≈ dotblas " i-eigen dot wrong?"
189
149
# br[9,i] = n_gflop / @belapsed dot($a, $a)
190
150
end
191
- function benchmark_selfdot (sizes)
192
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" , " g++ & Eigen-3" , " clang++ & Eigen-3" ]# , "OpenBLAS"]
193
- br = BenchmarkResult (tests, sizes)
194
- sm = br. sizedresults. results
195
- pmap (is -> selfdot_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
196
- br
197
- end
198
151
199
152
totwotuple (i:: Int ) = (i,i)
200
153
totwotuple (i:: Tuple{Int,Int} ) = i
@@ -241,18 +194,6 @@ function At_mul_vb_bench!(br, s, i)
241
194
y = rand (N);
242
195
gemv_bench! (br, x, A, y, i)
243
196
end
244
- function benchmark_Amulvb (sizes)
245
- br = BenchmarkResult (blastests (), sizes)
246
- sm = br. sizedresults. results
247
- pmap (is -> A_mul_vb_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
248
- br
249
- end
250
- function benchmark_Atmulvb (sizes)
251
- br = BenchmarkResult (blastests (), sizes)
252
- sm = br. sizedresults. results
253
- pmap (is -> At_mul_vb_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
254
- br
255
- end
256
197
257
198
function dot3_bench! (br, s, i)
258
199
M, N = totwotuple (s)
@@ -277,13 +218,6 @@ function dot3_bench!(br, s, i)
277
218
@assert iedot3 (x, A, y) ≈ dotblas " c-eigen dot wrong?"
278
219
br[9 ,i] = n_gflop / @belapsed dot ($ x, $ A, $ y)
279
220
end
280
- function benchmark_dot3 (sizes)
281
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" , " g++ & Eigen-3" , " clang++ & Eigen-3" , " LinearAlgebra" ]
282
- br = BenchmarkResult (tests, sizes)
283
- sm = br. sizedresults. results
284
- pmap (is -> dot3_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
285
- br
286
- end
287
221
# BLAS.set_num_threads(1)
288
222
function sse! (Xβ, y, X, β)
289
223
dgemvmkl! (copyto! (Xβ, y), X, β, 1.0 , - 1.0 )
@@ -317,13 +251,6 @@ function sse_bench!(br, s, i)
317
251
@assert ieOLSlp (y, X, β) ≈ lpblas " i-eigen wrong?"
318
252
br[9 ,i] = n_gflop / @belapsed sse! ($ Xβ, $ y, $ X, $ β)
319
253
end
320
- function benchmark_sse (sizes)
321
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" , " g++ & Eigen-3" , " clang++ & Eigen-3" , " MKL" ]
322
- br = BenchmarkResult (tests, sizes)
323
- sm = br. sizedresults. results
324
- pmap (is -> sse_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
325
- br
326
- end
327
254
328
255
function exp_bench! (br, s, i)
329
256
a = rand (s); b = similar (a)
@@ -341,13 +268,6 @@ function exp_bench!(br, s, i)
341
268
br[6 ,i] = n_gflop / @belapsed ifvexp! ($ b, $ a)
342
269
@assert b ≈ baseb " ifort wrong?"
343
270
end
344
- function benchmark_exp (sizes)
345
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" ]
346
- br = BenchmarkResult (tests, sizes)
347
- sm = br. sizedresults. results
348
- pmap (is -> exp_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
349
- br
350
- end
351
271
352
272
function aplusBc_bench! (br, s, i)
353
273
M, N = totwotuple (s)
@@ -371,13 +291,6 @@ function aplusBc_bench!(br, s, i)
371
291
br[8 ,i] = n_gflop / @belapsed ieaplusBc! ($ D, $ a, $ B, $ c)
372
292
@assert D ≈ Dcopy " i-eigen wrong?" ; fill! (D, NaN );
373
293
end
374
- function benchmark_aplusBc (sizes)
375
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" , " g++ & Eigen-3" , " clang++ & Eigen-3" ]
376
- br = BenchmarkResult (tests, sizes)
377
- sm = br. sizedresults. results
378
- pmap (is -> aplusBc_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
379
- br
380
- end
381
294
382
295
function AplusAt_bench! (br, s, i)
383
296
A = rand (s,s); B = similar (A)
@@ -403,13 +316,6 @@ function AplusAt_bench!(br, s, i)
403
316
br[10 ,i] = n_gflop / @belapsed ifAplusAt_builtin! ($ B, $ A)
404
317
@assert B ≈ baseB " ifort-builtin wrong?" ; fill! (B, NaN );
405
318
end
406
- function benchmark_AplusAt (sizes)
407
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" , " g++ & Eigen-3" , " clang++ & Eigen-3" , " GFortran-builtin" , " ifort-builtin" ]
408
- br = BenchmarkResult (tests, sizes)
409
- sm = br. sizedresults. results
410
- pmap (is -> AplusAt_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
411
- br
412
- end
413
319
414
320
function randomaccess_bench! (br, s, i)
415
321
A, C = totwotuple (s)
@@ -430,13 +336,6 @@ function randomaccess_bench!(br, s, i)
430
336
br[6 ,i] = n_gflop / @belapsed ifrandomaccess ($ P, $ basis, $ coefs)
431
337
@assert p ≈ ifrandomaccess (P, basis, coefs) " ifort wrong?"
432
338
end
433
- function benchmark_random_access (sizes)
434
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" ]
435
- br = BenchmarkResult (tests, sizes)
436
- sm = br. sizedresults. results
437
- pmap (is -> randomaccess_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
438
- br
439
- end
440
339
441
340
function logdettriangle_bench! (br, s, i)
442
341
S = randn (s, 2 s)
@@ -461,14 +360,6 @@ function logdettriangle_bench!(br, s, i)
461
360
# @assert ld ≈ ielogdettriangle(U) "i-eigen wrong?"; fill!(B, NaN);
462
361
br[7 ,i] = n_gflop / @belapsed logdet ($ U)
463
362
end
464
- function benchmark_logdettriangle (sizes)
465
- # tests = ["LoopVectorization", "Julia", "Clang", "GFortran", "icc", "ifort", "g++ & Eigen-3", "clang++ & Eigen-3", "LinearAlgebra"]
466
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" , " LinearAlgebra" ]
467
- br = BenchmarkResult (tests, sizes)
468
- sm = br. sizedresults. results
469
- pmap (is -> logdettriangle_bench! (sm, is[2 ], is[1 ]), enumerate (sizes))
470
- br
471
- end
472
363
473
364
474
365
function filter2d_bench_run! (br, s, i, K)
@@ -489,22 +380,7 @@ function filter2d_bench_run!(br, s, i, K)
489
380
br[6 ,i] = n_gflop / @belapsed iffilter2d! ($ B, $ A, $ K)
490
381
@assert B ≈ Bcopy " ifort wrong?"
491
382
end
492
- function benchmark_filter2d (sizes, K)
493
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" ]
494
- br = BenchmarkResult (tests, sizes)
495
- sm = br. sizedresults. results
496
- pmap (is -> filter2d_bench_run! (sm, is[2 ], is[1 ], K), enumerate (sizes))
497
- br
498
- end
499
383
500
- function benchmark_filter2ddynamic (sizes)
501
- K = OffsetArray (rand (Float64, 3 , 3 ), - 1 : 1 , - 1 : 1 )
502
- benchmark_filter2d (sizes, K)
503
- end
504
- function benchmark_filter2d3x3 (sizes)
505
- K = SizedOffsetMatrix {Float64,-1,1,-1,1} (rand (3 ,3 ))
506
- benchmark_filter2d (sizes, K)
507
- end
508
384
509
385
function filter2dunrolled_bench_run! (br, s, i, K)
510
386
A = rand (s + 2 , s + 2 )
@@ -524,11 +400,3 @@ function filter2dunrolled_bench_run!(br, s, i, K)
524
400
br[6 ,i] = n_gflop / @belapsed iffilter2dunrolled! ($ B, $ A, $ K)
525
401
@assert B ≈ Bcopy " ifort wrong?"
526
402
end
527
- function benchmark_filter2dunrolled (sizes)
528
- tests = [" LoopVectorization" , " Julia" , " Clang" , " GFortran" , " icc" , " ifort" ]
529
- br = BenchmarkResult (tests, sizes)
530
- sm = br. sizedresults. results
531
- K = SizedOffsetMatrix {Float64,-1,1,-1,1} (rand (3 ,3 ))
532
- pmap (is -> filter2dunrolled_bench_run! (sm, is[2 ], is[1 ], K), enumerate (sizes))
533
- br
534
- end
0 commit comments